首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从运行的Docker容器中读取文件和标准输出

如何从运行的Docker容器中读取文件和标准输出
EN

Stack Overflow用户
提问于 2014-07-08 06:41:13
回答 3查看 126.7K关注 0票数 85

为了从运行的docker容器中读取文件和stdout,我应该如何在我的主机上启动一个应用程序?

从本质上讲,我想这样做:

代码语言:javascript
复制
docker start containerid   
./myapp // This app will *somehow* have access files and stdout generated by the container I just stared. 

我该怎么做呢?更具体地说,我想要读取docker容器的日志和标准输出,并在其他地方处理这些日志。

我也愿意创建另一个docker容器,它可以从另一个容器读取文件和标准输出,但我不知道这是否可能。

EN

回答 3

Stack Overflow用户

发布于 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"

票数 6
EN

Stack Overflow用户

发布于 2014-07-09 09:14:50

在停靠容器和主机系统之间或在单独的容器之间共享文件最好使用volumes来完成。

让你的应用程序运行在另一个容器中可能是你最好的解决方案,因为这将确保你的整个应用程序可以很好地隔离和轻松部署。您正在尝试做的事情听起来非常接近this excellent blog post中描述的设置,请看一下!

票数 4
EN

Stack Overflow用户

发布于 2014-12-01 21:09:40

您可以在以下位置查看容器的文件系统

代码语言:javascript
复制
/var/lib/docker/devicemapper/mnt/$CONTAINER_ID/rootfs/

你可以直接

代码语言:javascript
复制
tail -f mylogfile.log
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24621067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档