docker bash 脚本中的日志不起作用
docker logs within a bash script doesn't work
我正在 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
docker logs localtunnel
}
在第一个函数 logs-are-showed 命令 docker logs
returns me the logs容器 mybash
在第二个函数 localtunnel 中,命令 docker logs
没有 return 任何东西。
在调用 localtunnel 函数后,如果我从脚本 外部请求容器日志 ,它正确显示日志。
为什么会这样?
进程需要时间来做出反应。它们可能在启动一个进程后就没有日志——它还没有写任何东西还。稍等一下。
我正在 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
docker logs localtunnel
}
在第一个函数 logs-are-showed 命令 docker logs
returns me the logs容器 mybash
在第二个函数 localtunnel 中,命令 docker logs
没有 return 任何东西。
在调用 localtunnel 函数后,如果我从脚本 外部请求容器日志 ,它正确显示日志。
为什么会这样?
进程需要时间来做出反应。它们可能在启动一个进程后就没有日志——它还没有写任何东西还。稍等一下。