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