docker缺少tailf命令,解决方案。
程序员文章站
2022-07-05 23:14:21
...
两种方案
第一种(推荐)
如果宿主服务器上面有tailf命令,可以直接到宿主机的 /usr/bin/ 目录下,寻找tailf文件
把该目录下的文件复制到指定的docker容器的 /usr/bin/ 目录下,然后就可以使用tailf命令了。
复制命令:docker cp /usr/bin/tailf 9c83a80fbeda:/usr/bin
命令解析:docker cp //复制命令
/usr/bin/tailf //服务器文件路径
9c83a80fbeda //容器id(可以通过docker ps 命令查看CONTAINER ID)
/usr/bin //容器中的路径(用于存放复制文件)
第二种方案
与第一种方案类型,自己写一个脚本文件,我写了一个简单的,可以直接用,很有瑕疵,文件名为tailf,没有后缀。
# !/bin/bash
if [ $# -eq 1 ]; then
tail -f -n -10 $1
elif [ $# -eq 2 ]; then
tail -f -n $1 $2
else
echo "Command line format tailf -num filepath, for example tailf -100 log.log"
fi
这个脚本主要判断有几个参数,如果有一个默认输出10行,如果有两个,则输出自定义的行数。
我自己的脚本文件是放到 /etc/init.d/ 目录下的,把这个脚本文件复制到docker容器中的相同目录下。
执行命令:docker cp /etc/init.d/tailf 9c83a80fbeda:/etc/init.d
进入容器:docker exec -it 9c83a80fbeda /bin/bash
命令解析:docker exec //进入容器命令
-i: 交互式操作。
-t: 终端。
9c83a80fbeda: 容器id。
/bin/bash:命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
进入容器后
给脚本文件赋予执行权限
命令:chmod +x /etc/init.d/tailf
然后进入容器的/usr/bin/目录下
命令:cd /usr/bin
建立软链接,这个操作就是在/usr/bin目录下建立指向/etc/init.d/tailf的tailf文件。
想想详细了解软链接 请看菜鸟教程 https://www.runoob.com/linux/linux-comm-ln.html
命令:ln -s /etc/init.d/tailf
效果相同:
上一篇: 计算机组成原理--存储器作业
下一篇: 打狗的一般性思路总结