当我使用 docker-compose up
我可以看到docker-compose.yml
文件中所有容器的日志。
但是,当我使用时,docker-compose run app
我只看到控制台输出,app
但是没有任何app
依赖的服务。如何查看其他服务的日志输出?
Answers:
docker-compose logs <name-of-service>
从文档中:
用法:日志[选项] [服务...]
选项:
--no-color产生单色输出。
-f,--follow跟随日志输出。
-t,--timestamps显示时间戳。
--tail =“ all”从每个容器的日志末尾开始显示的行数。
您可以以分离模式启动Docker compose,稍后将自己附加到所有容器的日志中。如果您已经看完日志,则可以在不关闭服务的情况下将自己从日志输出中分离出来。
docker-compose up -d
以分离模式(-d
)启动所有服务(分离模式下看不到任何日志)docker-compose logs -f -t
于重视自己的日志中所有正在运行的服务,而-f
意味着你跟随日志输出和-t
选项使您时间戳(见泊坞参考)Ctrl + z
或Ctrl + c
以分离从日志输出自己没有关闭正在运行的容器如果您对单个容器的日志感兴趣,则可以改用docker
关键字:
docker logs -t -f <name-of-service>
要将输出保存到文件,请将以下内容添加到日志命令:
docker-compose logs -f -t >> myDockerCompose.log
docker-compose run
与这些服务有关,并附带于这些服务中,这些服务具有唯一的名称,该名称来自docker.compose.yml
如果要查看终端中所有服务的输出日志。
docker-compose logs -t -f --tail <no of lines>
例如:假设您要记录所有服务的最后5行的输出
docker-compose logs -t -f --tail 5
如果您希望记录特定服务的输出,则可以按照以下步骤进行:
docker-compose logs -t -f --tail <no of lines> <name-of-service1> <name-of-service2> ... <name-of-service N>
用法:
例如。说您有API和门户网站服务,则可以执行以下操作:
docker-compose logs -t -f --tail 5 portal api
其中5代表两个日志的最后5行。
参考:https : //docs.docker.com/v17.09/engine/admin/logging/view_container_logs/
docker-compose logs -f service_name