これは私の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
Golang Dockerfileは公式であり、
Debian GNU/Linux 8 (jessie)
Docker Install Tutor(Debian) からインストール手順を確認して、このDockerfileを書き留めました。
しかし、出力は
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'.
このタスクには Docker-in-Docker を使用します。彼らはすでにあなたのために多くの問題を解決しています。
最も簡単な方法は、 https://hub.docker.com/_/docker/ の公式Docker-in-Dockerイメージを:dind
タグとともに使用することです(これは、プロジェクト Hendrikvh 既に述べた)。
--priviledged
フラグも必ず使用する必要があります。
docker run --privileged --name yourDockerContainerNameHere -d docker:dind
これでDocker-in-Dockerの実験は機能するはずです-しかし、あなたの邪魔になる可能性のある多くのつまずきブロックに注意してください: https://jpetazzo.github.io/2015/09/03/do-not- use-docker-in-docker-for-ci /
Dockerコマンドを実行する前に、Dockerサービスを開始してみてください。この行を追加
RUN bash service docker start
この行の上のDockerfileに:
RUN docker run hello-world