Docker:从主机上的priveleged容器内运行任意命令

时间:2017-03-29 01:14:47

标签: docker docker-compose

我正在尝试从一个priveleged docker运行命令。特别是命令nmcli

当我尝试将nmcli添加为卷时,它会抱怨它缺少其他文件。

当我添加整个/usr/bin时,它抱怨python无法添加site-packages。

有没有办法,我可以从子容器

在主机上运行命令

1 个答案:

答案 0 :(得分:1)

yumapt等软件包管理器一起安装的大多数工具都将使用共享库来减少安装的总体大小。

容器要么必须是相同的发行版并且安装了相同的包依赖项,要么将二进制文件的所有依赖项挂载到容器中。

这样的事情应该有效:

docker run \
  -v /lib:/lib \
  -v /usr/lib/:/usr/lib \
  -v /usr/bin/nmcli:/usr/bin/nmcli \
  busybox \
  /usr/bin/nmcli

但如果您希望容器也使用它自己的共享库,您可能需要更加具体地了解库安装。

某些软件包可以提供“静态二进制文件”,其中包含可执行文件中的所有依赖项。我怀疑nmcli是否存在,因为它是RHEL特定工具来管理RHEL框,其策略是使用yum来管理共享库。