首先我通过以下命令尝试将tcpdump拷贝到Docker容器中
docker cp /usr/sbin/tcpdump 这里填容器id:/usr/sbin
docker cp /lib64/libpcap.so.1 这里填容器id:/lib64/
docker cp /lib64/libpcap.so.1.5.3 这里填容器id:/lib64`
然后进入容器内部,执行tcpdump命令后报错:
docker tcpdump: error while loading shared libraries: libcrypto.so.10:
google后找到解决办法:Docker所在主机运行以下命令
ll /lib64/libcrypto.so.1*
看看是否libcrypto.so.10存在软连接:
比如如图表示libcrypto.so.10是软连接,真正的文件是libcrypto.so.1.0.2k 。
那么直接将这个文件拷贝到容器即可:
docker cp /lib64/libcrypto.so.1.0.2k 容器id:/lib64/libcrypto.so.10
接着执行tcpdump命令后又报错:
tcpdump: Couldn't find user 'tcpdump'
通过这个方法解决该问题:在容器内部输入命令:
cat >> /etc/passwd
输入:
tcpdump:x:72:72::/:/sbin/nologin
(72存在,就使用 1~499 范围内的其他数字)
然后ctrl+D退出编辑。
现在tcpdump就能在容器内就能正常使用了