如何从正在运行的 Docker 容器中读取文件和标准输出
技术问答
294 人阅读
|
0 人回复
|
2023-09-12
|
我将如何在我的主机上启动一个应用程序,以便从正在运行的 docker 在容器中读取文件和标准输出?, n. i% `4 y. B8 [0 ~( ~8 v
基本上我想这样做:
3 H! B0 g7 f( odocker start containerid ./myapp // This app will *somehow* have access files and stdout generated by the container I just stared. + q& p, \5 g6 |
我该怎么办?更具体的说明我想用这个去哪里;我想读 docker 容器的日志和标准输出,并在其他地方处理。 b S' a7 W h- D
我也愿意创建另一个 ,可以从另一个容器读取文件和标准输出docker 容器,但我不知道这是否可能。( ]4 c7 u, m1 L5 T/ d/ k0 D- C
4 R4 h, I, z# W. y' s# ?5 W1 V
解决方案:
2 z4 l; g+ [: g. ~) H1 Q docker 容器启动的进程的标准输出可通过docker logs $containerid命令获得(用于-f让它永远运行)。另一种选择是直接通过docker remote API流式传输日志。5 V. [- [+ Z; N
对于访问日志文件(必要时请考虑记录 stdout 或其他标准解决方案,如 syslogd),您唯一的实时选项是配置卷(如 Marcus Hughes 建议将日志存储在容器外,并可从主机或另一个容器处理。- Z" `+ }/ q8 P$ N
如果不需要实时访问日志,可以使用以下命令导出文件(以 tar 格式)docker export |
|
|
|
|
|