有些场景下,我们需要在容器内部调用宿主机的命令,比如使用rsync给另外的机器发送图片,但是rsync安装在宿主机上,java直接执行rsync命令是会报错,提示找不到rsync命令
就拿rsync举例
一般rsync的安装都是在 /usr/bin/rsync
所以我们需要挂载这个地址
-v /usr/bin/rsync:/usr/bin/rsync
只挂载这个地址会提示libpopt.so.0
缺失,还需要挂载配置文件
-v /usr/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu
完整的命令
docker run -v /usr/bin/rsync:/usr/bin/rsync -v /usr/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu -d --name test-app --restart always -p 3001:3001 --net sup-network test-app
原来是
rsync -vzrtopg --progress --delete --chmod=755 /tmp/tempImg202410255916281385931068271.jpg 192.168.100.103::imagePull/20240929/M01300020240929001/
现在调整为
/usr/bin/rsync -vzrtopg --progress --delete --chmod=755 /tmp/tempImg202410255916281385931068271.jpg 192.168.100.103::imagePull/20240929/M01300020240929001/
本文作者:Weee
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!