gpt4 book ai didi

logging - 跨容器共享数据

转载 作者:行者123 更新时间:2023-12-02 19:11:35 25 4
gpt4 key购买 nike

我有一个正在运行应用程序服务器的docker容器。生成应用程序日志并将其存储在特定目录中。在我的方案中,在该位置生成并存储了多个日志文件和跟踪。

我可以理解,有多种方法可以访问这些日志,例如

docker exec -it <container_id> bash
ssh into the container (when the keys are set while creating the container)


除了以上两个示例,我想通过另一个容器(运行Nginx Web服务器)访问日志。从理论上讲,我可以理解在为应用程序服务器创建docker容器(第一个容器)时使用“--volumes-from”的概念,但是我不知道如何使它工作。

我的要求是,无论何时生成日志,都应通过其他容器的Web服务器提供日志。有没有办法像目录列表一样看到整个日志目录的目录列表(通过Volumes ???)。

我尝试了这样的事情,但无法正常工作
docker run --name=log_webserver -p 80 --volumes-from logvol:/website_files nginx

docker run --name appcontainer -m 1024 -p 9080 -v sysvol:/var/log/rsyslog -v logvol:/opt/servers/simpleappserver/logs krckumar/simpleappserver

还有其他公开日志的方法吗?请提出建议。

最佳答案

docker run --name container1 -v /website_files
docker run --name container2 --volumes_from container1

暴露日志....
docker logs -f container1

如果您在ENTRYPOINT脚本中使用-f日志记录,则此方法有效-由于docker以进程为中心,tail -f还可防止容器退出。由于tail -f永远不会结束,因此您的容器将永远不会退出。所以你可以调查里面发生了什么
docker exec -it container1 bash

请问其他任何问题。

PS,如果使用多个容器,则可能要考虑使用docker-compose,这很容易学习,并且完全基于docker命令本身。

关于logging - 跨容器共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35864823/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com