====== Docker ====== I use Fedora as baseline, thus all the instructions consider it :-) ===== Installation ===== 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 '' 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'' ==== Build new image ==== - Create the file with the instructions to the new image to be build: ''Dockerfile'' - Run ''docker build -t '' '' ==== 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 /bin/bash ==== References ==== * https://devopscube.com/run-docker-in-docker/