sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo systemctl enable docker
Images and Containers
Images are not yet running containers including one application and the os fundamentals for it.
Containers are running or sleeping instances of applications that are enclosed by the container.
Setting up images
Create directory wherever you want. Copy config files for the service to the directory. cd to that directory
Create Dockerfile in the dir. Example File for Samba container:
repository may be somethin like a name that explaines the containers purpose (samba_debian) the tag my be a version
Show images on host:
Remove image (get id with command above):
docker image rm <<Image ID>>
Get official image and keep it locally (for images that you use often). E.g. debian:
docker pull debian
Start container (text from docs.docker.com):
Run the following command to start a container based on your new image:
docker run --publish 8000:8080 --detach --name <<name>>
There are a couple of common flags here:
--publishasks Docker to forward traffic incoming on the host’s port 8000 to the container’s port 8080. Containers have their own private set of ports, so if you want to reach one from the network, you have to forward traffic to it in this way. Otherwise, firewall rules will prevent all network traffic from reaching your container, as a default security posture.
--detachasks Docker to run this container in the background.
--namespecifies a name with which you can refer to your container in subsequent commands, in this case
Start container with interactive shell:
docker run -it <<repository>>:<<tag>> /bin/bash
docker stop <<name>>
Show all containers on host:
docker ps -a
Show running containers on host:
docker rm <<container name>>