linux - bash 脚本中的 docker 日志不起作用

标签 linux bash docker containers

我正在 bash 脚本中试验 Docker 的奇怪行为。 让我们看看这两个例子:

logs-are-showed() {
     docker rm -f mybash &>/dev/null
     docker run -it --rm -d --name mybash bash -c "echo hello; tail -f /dev/null"
     docker logs mybash
}

# usage:
# $ localtunnel 8080
localtunnel() {
     docker rm -f localtunnel &>/dev/null
     docker run -it -d --network host --name localtunnel efrecon/localtunnel --port $1
     docker logs localtunnel
}

在第一个函数logs-are-showed中,命令docker log返回容器mybash的日志嗯>

在第二个函数localtunnel中,命令docker log不会返回任何内容。 调用 localtunnel 函数后,如果我从脚本外部请求容器日志,它会正确显示日志。

为什么会发生这种情况?

最佳答案

进程需要时间来 react 。它们可能在启动进程后没有日志 - 它尚未写入任何内容。。稍等一下。

关于linux - bash 脚本中的 docker 日志不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70365715/

相关文章:

linux - 完整 Ubuntu 的 inode 数

linux - Bash 脚本捕获信号但之后等待进程终止

bash - 如何为具有特定 ip 的打开浏览器创建 shell 脚本?

docker - 如何判断我是否从脚本登录到私有(private) Docker 注册表?

mysql - docker容器中的spring服务无法连接到docker容器中的mysql

Linux 命令卡在 ec2 实例上

c++ - mysql连接器的使用方法

linux - 使用 SharePoint URL 和 cURL 进行 URL 编码

python - 比较两个不同文件中的字符串的脚本

docker - 当 docker 容器在没有 --interactive 的情况下运行时,为什么 Expect 会失败