为了从运行的docker容器中读取文件和stdout,我应该如何在我的主机上启动一个应用程序?
从本质上讲,我想这样做:
docker start containerid
./myapp // This app will *somehow* have access files and stdout generated by the container I just stared. 我该怎么做呢?更具体地说,我想要读取docker容器的日志和标准输出,并在其他地方处理这些日志。
我也愿意创建另一个docker容器,它可以从另一个容器读取文件和标准输出,但我不知道这是否可能。
发布于 2017-12-14 02:16:42
有点晚了,但这就是我对journald所做的。它非常强大。
您需要在装有systemd-journald的操作系统上运行docker容器。
docker run -d --log-driver=journald myapp
这就把所有的东西都输入到了主持人的日志中,它负责日志修剪、存储格式等内容,并为你提供了一些查看它们的很酷的选项:
journalctl CONTAINER_NAME=myapp -f
当它被记录时,它会把它提供给你的控制台,
journalctl CONTAINER_NAME=myapp > output.log
这样你就可以在一个文件中提取全部内容,或者
journalctl CONTAINER_NAME=myapp --since=17:45
另外,如果你愿意的话,你仍然可以通过docker logs ....查看日志。
不再有> my.log或-v "/apps/myapp/logs:/logs"等
发布于 2014-07-09 09:14:50
在停靠容器和主机系统之间或在单独的容器之间共享文件最好使用volumes来完成。
让你的应用程序运行在另一个容器中可能是你最好的解决方案,因为这将确保你的整个应用程序可以很好地隔离和轻松部署。您正在尝试做的事情听起来非常接近this excellent blog post中描述的设置,请看一下!
发布于 2014-12-01 21:09:40
您可以在以下位置查看容器的文件系统
/var/lib/docker/devicemapper/mnt/$CONTAINER_ID/rootfs/你可以直接
tail -f mylogfile.loghttps://stackoverflow.com/questions/24621067
复制相似问题