欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

docker缺少tailf命令,解决方案。

程序员文章站 2022-07-05 23:14:21
...

两种方案

第一种(推荐)

如果宿主服务器上面有tailf命令,可以直接到宿主机的 /usr/bin/ 目录下,寻找tailf文件

docker缺少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                  //容器中的路径(用于存放复制文件)

docker缺少tailf命令,解决方案。

第二种方案

与第一种方案类型,自己写一个脚本文件,我写了一个简单的,可以直接用,很有瑕疵,文件名为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
docker缺少tailf命令,解决方案。
效果相同:
docker缺少tailf命令,解决方案。