当前位置: 首页 > 知识库问答 >
问题:

在Docker容器中运行Docker:无法连接到Docker守护进程

邬浩涆
2023-03-14

我创建了一个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守护程序是否正在运行?"

我在容器中执行了命令dockerd,结果是:

启动守护程序时出错:初始化网络控制器时出错:获取控制器实例时出错:未能创建NAT链DOCKER:iptables失败:iptables-t NAT-N DOCKER:iptables v1.6.0:无法初始化iptables表“NAT”:权限被拒绝(您必须是root用户)可能iptables或内核需要升级。(退出状态3)

请指教

共有2个答案

郗唯
2023-03-14

如果确实要在其他Docker容器中运行Docker容器,则应使用Docker提供的现有图像(https://hub.docker.com/_/docker)不要创建自己的基础图像:选择标记为dind的图像(docker in docker)或

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的评论和他提到的参考博客文章(不要将Docker-in-Docker用于CI):应尽可能避免Docker-in-Docker。

范福
2023-03-14

我收到的建议是在docker run中使用-v参数在容器之间映射docker套接字,如下所示:

-v /var/run/docker.sock:/var/run/docker.sock
 类似资料:
  • 问题内容: 我创建了一个Dockerfile在Docker内部运行Docker: 启动容器并运行docker ps后,我得到:“无法通过unix:///var/run/docker.sock连接到Docker守护程序。Docker守护程序正在运行吗?” 我在容器内执行了命令dockerd: 错误启动守护程序:错误初始化网络控制器:错误获取控制器实例:无法创建NAT链DOCKER:iptables失

  • 我正在运行安装了以下docker软件的Ubuntu:

  • 我有一个jenkins在docker容器中运行,另一个docker在不同的docker容器中运行。 我已经映射了/var/run/docker。将本地机器的sock文件保存到docker容器中,并且我能够在docker容器中执行docker命令。docker容器和jenkins容器都位于同一网络上。但当从詹金斯连接到docker集装箱时,我的连接被拒绝了。我已将666个权限授予/var/run/d

  • 我是docker的新手,在这里还没有找到一个问题来回答我遇到的问题。 我正在尝试使用Pycharm运行dockerfile,以便调试docker中的特定程序。我在pycharm中打开了dockerfile,并创建了运行dockerfile的配置。运行程序会在“服务”选项卡下显示错误消息: 在我搜索了这个问题之后,我发现了这个线程:无法连接到unix上的Docker守护程序:/var/run/Doc

  • 问题内容: 我想迁移到Docker,所以我才刚开始使用它。我已经在VirtualBox Ubuntu 15.10(Wily Werewolf)安装上安装了Docker,然后按照此处的建议,我尝试运行基本的nginx Docker映像: 因此,我检查了Docker是否正在运行: 这表明Docker守护程序实际上已经在运行,但是请确保我只是手动启动了Docker守护程序: 然后,我尝试再次运行该映像,

  • 问题内容: 我已经在ubuntu 14.04上安装了docker,它告诉我安装成功。然后我进入,它返回了 我进入了 我尝试了和,得到了相同的答复: 我不知道为什么它返回了这个,我尝试使用来拉ubuntu 并得到了 请告诉我如何解决此问题,如何拉出并运行docker image。和是一样的吗? 问题答案: 您需要将当前用户添加到组中,如下所示: 另外,您可以使用以下环境变量: 然后重新启动系统。正如