gpt4 book ai didi

docker - 在 Docker 容器中运行 Docker : Cannot connect to the Docker daemon

转载 作者:行者123 更新时间:2023-12-01 11:14:38 29 4
gpt4 key购买 nike

我创建了一个 Dockerfile 来在 Docker 中运行 Docker:

    FROM ubuntu:16.04
RUN apt-get update && \
apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
software-properties-common && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - &&\
apt-key fingerprint 0EBFCD88

RUN add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" && \
apt-get update && \
apt-get install -y docker-ce && \
systemctl enable docker

在我启动我的容器并运行 docker ps 后,我得到了:
“无法连接到 unix:///var/run/docker.sock 上的 Docker 守护进程。docker 守护进程是否正在运行?”

我在容器内执行命令 dockerd 结果:

启动守护程序时出错:初始化网络 Controller 时出错:获取 Controller 实例时出错:无法创建 NAT 链 DOCKER:iptables 失败:iptables -t nat -N DOCKER:iptables v1.6.0:无法初始化 iptables 表 `nat':权限被拒绝(你必须是root)
也许 iptables 或您的内核需要升级。
(退出状态 3)

请指教

最佳答案

如果您真的想在其他 Docker 容器中运行 Docker 容器,您应该使用 Docker ( https://hub.docker.com/_/docker ) 提供的现有镜像,而不是创建自己的基础镜像:选择标记为 dind 的镜像( d ocker in d ocker)或 <docker_version>-dind(如 18.09.0-dind )。如果您想运行自己的镜像(虽然不推荐),请不要忘记使用 --privileged 选项运行它(这就是您收到错误的原因)。
docker 官方图片示例:

# run Docker container running Docker daemon
docker run --privileged --name some-docker -d docker:18.09.0-dind

# run hello-world Docker image inside the Docker container previously started
docker exec -i -t some-docker docker run hello-world

尽管如此,我同意@DavidMaze 的评论和他提到的引用博客文章 ( Do not use Docker-in-Docker for CI):应尽可能避免 Docker-in-Docker。

关于docker - 在 Docker 容器中运行 Docker : Cannot connect to the Docker daemon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54062327/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com