I use Fedora as baseline, thus all the instructions consider it
Fedora provides Docker support using Podman or Docker CE. We will stick with Docker CE for now, as provided by package moby-engine
(moby is the mascot of Docker):
dnf install moby-engine
systemctl enable docker
Check if Docker is running:
curl –unix-socket /var/run/docker.sock http://localhost/version
Allow other users than root to use Docker by adding them to docker
group:
groupadd docker
usermod -aG docker <username>
You will probably want to install docker-compose
:
dnf install docker-compose
If you want to run docker inside docker (nested docker instances), you may run the nested docker instance using the default Unix socket docker.sock as a volume. The limitation in using docker.sock
as a volume provided by the host is that any docker operations taking place on the nested docker instance actually runs on the base docker container rather than on the nested container (as the commands are routed to the docker.sock, which is actually provided the by host container. For example:
docker run -v /var/run/docker.sock:/var/run/docker.sock -ti docker
An alternative to run nested docker instances is to use dind
(Docker In Docker). You should use the docker image 'dind' with a privileged host:
docker run –privileged -d –name dind-test docker:dind
Dockerfile
docker build -t <image name>
<directory with Dockerfile>
==== Debugging running containers ====
- Find the running container id. You may use the command
docker ps to list the running ones.
- Enter into the running container:
docker exec -it <container id> /bin/bash