背景
当前centos系统,安装了ubuntu镜像的docker容器,进入docker容器后,想执行ping命令,
但是报错“command not found”:
root@77bbc59e6655:/# ping
bash: ping: command not found
问题分析
ubuntu的docker镜像中未打包ping命令,所以需要将ping命令复制到docker容器内。
但是否能直接将centos下的ping命令拷贝到容器中使用呢?
这个是个问号?
不过从原理上分析,两者都是出自linux系统,应该可以互用。
下面就试一下这个解决办法。
解决办法
centos
ping可执行文件路径:/usr/bin/ping
ping依赖库:/usr/lib64/
ubuntu
ping可执行文件路径:/bin/
ping依赖库:/lib/x86_64-linux-gnu/
执行下面步骤
docker cp /usr/bin/ping app:/bin/
docker cp /lib64/libcap.so.2 app:/lib/x86_64-linux-gnu/
docker cp /lib64/libcap.so.2.22 app:/lib/x86_64-linux-gnu/
docker cp /usr/lib64/libidn.so.11 app:/lib/x86_64-linux-gnu/
docker cp /usr/lib64/libidn.so.11.6.11 app:/lib/x86_64-linux-gnu/
OK,执行以上命令后再进入容器,执行成功。
如下图:
root@65128a21f978:/# ping www.baidu.com
PING www.a.shifen.com (180.97.33.107) 56(84) bytes of data.
64 bytes from 180.97.33.107: icmp_seq=1 ttl=50 time=34.5 ms
64 bytes from 180.97.33.107: icmp_seq=2 ttl=50 time=34.6 ms