Docker不显示在/dev/stdout中写入的日志

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容器:

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记录和阅读?谢谢我不想被打败,但是。。。我要说你不能那样做。如果你能找到一种方法去做,那么这真的是一种你不应该做的丑陋的黑客行为。如果我是你,那么我会问自己为什么要实现这一目标,以及是否有其他办法解决根本问题。