从Docker容器中运行Docker命令

4
需要编写一个Dockerfile,在container-a中安装docker。因为container-a需要执行docker命令到与其并行运行的container-b中。 我的理解是在编写Dockerfile时不应该使用“sudo”。 但我遇到了问题--我应该将哪个用户分配给docker组?当你运行docker exec -it时,你自动成为root用户。 sudo usermod -a -G docker whatuser? 此外(我正在手动尝试这个步骤以查看它是否有效),您必须执行newgrp docker来激活对组的更改。每次我这样做时,我都会出现sudo'ing的情况,即使我没有进行sudo'ing操作。这有道理吗?症状是--当我要退出容器时,我必须退出两次(好像我更改了用户)。
我做错了什么?
1个回答

3

如果您想要同时运行多个容器(而不是在容器内部运行容器),您应该从主机系统挂载docker套接字,并通过此方式执行命令到其他容器:

    docker run --name containera \
      -v /var/run/docker.sock:/var/run/docker.sock \
      yourimage

使用挂载docker套接字,您可以控制主机系统上的docker。

没错,就是这样。你需要做两件事:1)从主机系统挂载docker套接字,2)在容器中安装docker。但现在你不必担心其他任何东西(设置/运行为用户等),因为主机将替你处理。很棒。非常感谢。 - user5161995
如果您不介意使用Docker API,实际上您并不需要在容器内安装Docker。您可以直接与Docker套接字通信。 - Geige V
2
将Docker套接字挂载到我的环境中无法正常工作。我在Docker内使用CentOS 7,在主机上使用RedHat 7。我是否遗漏了什么? - Jerald Sabu M

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接