Docker不显示在/dev/stdout中写入的日志
我开始使用一些docker容器:Docker不显示在/dev/stdout中写入的日志,docker,docker-compose,Docker,Docker Compose,我开始使用一些docker容器: docker-compose up -d 这是 然后: docker-compose logs -f web 但如果我在另一个外壳上写: docker-compose exec web echo "hello" >> /dev/stdout “实时日志”屏幕中不显示任何内容。 对于任何其他容器也是如此。为什么?我做错什么了吗?/dev/stdout对于每个进程都是不同的。docker compose日志只显示PID 1进程的输出,而不显示在该容
docker-compose up -d
这是
然后:
docker-compose logs -f web
但如果我在另一个外壳上写:
docker-compose exec web echo "hello" >> /dev/stdout
“实时日志”屏幕中不显示任何内容。
对于任何其他容器也是如此。为什么?我做错什么了吗?/dev/stdout对于每个进程都是不同的。docker compose日志只显示PID 1进程的输出,而不显示在该容器命名空间中运行的其他进程
更新:另请注意:
>>/dev/stdout将应用于主机上的docker compose exec web echo hello。。不要在容器内回显hello
>>/dev/stdout有点不可操作,因为默认情况下进程将写入stdout。。对于stdout,>>append与>redirect相同,因为没有可以覆盖/替换的预先存在的输出。
/每个进程的dev/stdout都是不同的。docker compose日志只显示PID 1进程的输出,而不显示在该容器命名空间中运行的其他进程
更新:另请注意:
>>/dev/stdout将应用于主机上的docker compose exec web echo hello。。不要在容器内回显hello
>>/dev/stdout有点不可操作,因为默认情况下进程将写入stdout。。对于stdout,>>append与>redirect相同,因为没有可以覆盖/替换的预先存在的输出。
解决了将其放入virtualhost配置中的问题:
CustomLog /proc/self/fd/1 combined
ErrorLog /proc/self/fd/2
因此,为了在docker上显示日志,您可以使用/proc/self/fd/1和/proc/self/fd/2将其放入virtualhost配置中:
CustomLog /proc/self/fd/1 combined
ErrorLog /proc/self/fd/2
因此,为了在docker上显示日志,您可以使用/proc/self/fd/1和/proc/self/fd/2那么我应该怎么做才能通过docker compose logs记录和读取日志呢?谢谢我不想被打败,但是。。。我要说你不能那样做。如果你能找到一种方法去做,那么这真的是一种你不应该做的丑陋的黑客行为。如果我是你,那么我会问自己为什么要实现这一目标,以及是否有其他解决方案来解决根本问题。那么我应该怎么做才能通过docker compose logs记录和阅读?谢谢我不想被打败,但是。。。我要说你不能那样做。如果你能找到一种方法去做,那么这真的是一种你不应该做的丑陋的黑客行为。如果我是你,那么我会问自己为什么要实现这一目标,以及是否有其他办法解决根本问题。