我最近拉取了一个nginx镜像:
docker pull nginx
我可以成功运行它并访问http://server_name,看到“Welcome to Nginx”页面。
docker run -d -p 80:80 nginx
但当我尝试查看日志时:
docker exec 6c79549e3eb4f6e5fc06f049b67814ac4560ce2cdd7cc6ae84b44b5ae09a9a05 cat /var/log/nginx/access.log
它只是卡住了,没有输出任何内容。错误日志也是一样的。现在如果我在同一个文件夹中创建一个test.txt文件,并使用docker exec查看该文件,它会执行而不会卡住或出现任何问题。
即使我尝试以交互模式运行它,它也会卡住:
docker run -i -t -p 80:80 nginx
再一次,终端卡在下一行不做任何操作,但似乎它能正常工作,因为我可以访问nginx的欢迎页面。
我真的很困惑正在发生什么事情,我试图搜索此问题,但到目前为止没有找到任何解决方案。如果无法查看日志,则调试将非常困难 :) 此外,根据约定,docker容器应该将访问日志移动到stdout中,不是吗?
/var/log/nginx/access.log
?尝试通过docker run -i -t -p 80:80 nginx /bin/bash
进入容器并交互式运行命令。 - Daniel t.ls -al
而不是仅运行ls
,并发布输出。 - Daniel t.