Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker:在主机上的私有容器中运行任意命令_Docker_Docker Compose - Fatal编程技术网

Docker:在主机上的私有容器中运行任意命令

Docker:在主机上的私有容器中运行任意命令,docker,docker-compose,Docker,Docker Compose,我正试图从一个有特权的码头工人那里执行命令。特别是命令nmcli 当我尝试将nmcli添加为卷时,它会抱怨缺少其他文件 当我添加整个/usr/bin时,它抱怨python无法添加站点包 有没有办法,我可以从子容器在主机上运行命令使用包管理器(如yum或apt)安装的大多数工具将使用共享库来减少安装的总体大小 容器需要是相同的发行版并安装相同的包依赖项,或者将二进制文件的所有依赖项装载到容器中 像这样的方法应该会奏效: docker run \ -v /lib:/lib \ -v /usr

我正试图从一个有特权的码头工人那里执行命令。特别是命令
nmcli

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

当我添加整个
/usr/bin
时,它抱怨python无法添加站点包


有没有办法,我可以从子容器在主机上运行命令

使用包管理器(如
yum
apt
)安装的大多数工具将使用共享库来减少安装的总体大小

容器需要是相同的发行版并安装相同的包依赖项,或者将二进制文件的所有依赖项装载到容器中

像这样的方法应该会奏效:

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来管理共享库。

要在我的机器上运行更复杂的nmcli命令,我需要额外的绑定:docker run \-v/lib:/lib \-v/usr/lib/:/usr/lib \-v/usr/bin/nmcli:/usr/bin/nmcli \-v/var/run/dbus/system \-bus \-socket:/var/run/dbus/system \-bus \-socket \-privileged\ubuntu:16.04 \-/usr/bin/nmcli设备wifi