web-dev-qa-db-ja.com

DockerコンテナにDockerをインストールする方法は?

これは私の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コンテナにdockerコンテナを確立したい。

10
Jolly23

このタスクには Docker-in-Docker を使用します。彼らはすでにあなたのために多くの問題を解決しています。

1
Hendrikvh

最も簡単な方法は、 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 /

0
jonashackt

Dockerコマンドを実行する前に、Dockerサービスを開始してみてください。この行を追加

RUN bash service docker start

この行の上のDockerfileに:

RUN docker run hello-world 
0
D. Villegas