我正在尝试在另一个 docker 容器内启动一个 docker 容器,但出现此错误:
<块引用>无法连接到 unix:///var/run/docker.sock 上的 Docker 守护进程。 docker 守护进程是否正在运行
当我尝试使用 docker build -t dind .
这是我的 Dockerfile
的样子:
FROM docker:18.09.0-dind
RUN docker network create gitlab-runner-net
RUN docker run -d \
--name gitlab-dind \
--privileged \
--restart always \
--network gitlab-runner-net \
-v /var/lib/docker \
docker:17.06.0-ce-dind \
--storage-driver=overlay2
RUN mkdir -p /srv/gitlab-runner
RUN touch /srv/gitlab-runner/config.toml
谁能告诉我为什么会出现这个错误以及如何解决这个问题?
答案 0 :(得分:0)
我不知道这是否会帮助你,但你可以使用泊坞窗,撰写代替:
的为例搬运工-compose.yml
version: '3.5'
services:
docker:
image: docker:18.09.0-dind
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker
entrypoint: /bin/sh
command: -c "docker network create gitlab-runner-net;
docker run -d --name gitlab-dind --privileged
--restart always --network gitlab-runner-net
-v /var/lib/docker docker:17.06.0-ce-dind"
然后docker-compose up -d
Starting dk_docker_1 ... done
Attaching to dk_docker_1
docker_1 | 66fdfc18e290814cff7b1d8cb75acf575e22cc5b4d3478e0274b82043f0d493c
docker_1 | e3a2deb36d8a8b71aef86b2a73455a2a1cd5fa99c4e961a125421ca7aefd2e14
dk_docker_1 exited with code 0
然后,主机上:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e3a2deb36d8a docker:17.06.0-ce-dind "dockerd-entrypoint.…" 45 seconds ago Up 44 seconds 2375/tcp gitlab-dind
内部搬运工然后运行搬运工:
docker exec -it 05e7f866382b docker run -d alpine sleep 300
Unable to find image 'alpine:latest' locally
latest: Pulling from library/alpine
801bfaa63ef2: Pull complete
Digest: sha256:3c7497bf0c7af93428242d6176e8f7905f2201d8fc5861f45be7a346b5f23436
Status: Downloaded newer image for alpine:latest
06a481b6692d6e4ef19ca4bd95ddc403c08a828817dc66092343ddd3e0690f27
docker exec -it 05e7f866382b docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
06a481b6692d alpine "sleep 300" 12 seconds ago Up 12 seconds peaceful_snyder
这只是一个例子,你将不得不正确设置网络,卷等等...
答案 1 :(得分:0)
我遇到了这个问题,但是在 datagrip 中使用 docker 但最终发现问题出在许可上,如果您从 sudo 开始,问题将得到解决,或者如果您只想使用 docker 我建议您查看此 https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-16-04 并且有一个丑陋的解决方法,那就是使用此命令授予 docker.sock 权限 sudo chmod 777 /var/bin/docker.sock 希望对你有帮助