C'est mon Dockerfile:
FROM golang
# RUN cat /etc/*release
RUN apt-get update
RUN apt-get -y install apt-transport-https ca-certificates curl gnupg2 software-properties-common
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
RUN add-apt-repository "deb [Arch=AMD64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
RUN apt-get update
RUN apt-get -y install docker-ce
RUN docker run hello-world
Le golang Dockerfile est officiel, il repose sur le
Debian GNU/Linux 8 (jessie)
J'ai donc écrit ce fichier Docker en vérifiant les étapes d'installation depuis Docker Install Tutor (Debian)
Mais la sortie est
Step 8/8 : RUN docker run hello-world
---> Running in b183b8cc5d10
docker: Cannot connect to the Docker daemon at
unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.
Utilisez Docker-in-Docker pour cette tâche. Ils ont déjà résolu beaucoup de problèmes pour vous.
Le moyen le plus simple est d'utiliser les images officielles de Docker-in-Docker de https://hub.docker.com/_/docker/ avec la balise :dind
(qui est le successeur du projet Hendrikvh déjà mentionné).
Vous devez absolument utiliser le drapeau --priviledged
également:
docker run --privileged --name yourDockerContainerNameHere -d docker:dind
Avec cela, vos expériences Docker-in-Docker devraient fonctionner - mais soyez conscient des nombreux blocages qui pourraient vous gêner: https://jpetazzo.github.io/2015/09/03/do-not-use- docker-in-docker-for-ci/
Essayez de démarrer le service Docker avant d’exécuter une commande Docker . Ajouter cette ligne
RUN bash service docker start
à votre fichier Docker ci-dessus de cette ligne:
RUN docker run hello-world
J'ai eu un problème similaire en essayant d'installer Docker dans une image du serveur Bamboo. Pour résoudre ceci:
Dockerfile
-v
ou en montant un volume à l'aide de Docker Compose
:docker run -v /var/run/docker.sock:/var/run/docker.sock ...