如何从正在运行的 Docker 容器中读取文件和标准输出
技术问答
246 人阅读
|
0 人回复
|
2023-09-12
|
我将如何在我的主机上启动一个应用程序,以便从正在运行的 docker 在容器中读取文件和标准输出?. O- e8 q4 L6 o) w, S
基本上我想这样做:
: Y; O# ^* K" fdocker start containerid ./myapp // This app will *somehow* have access files and stdout generated by the container I just stared.
1 a& X& j# }, u2 }& y 我该怎么办?更具体的说明我想用这个去哪里;我想读 docker 容器的日志和标准输出,并在其他地方处理。
8 Y- f7 D" I g0 C# ]- T7 f我也愿意创建另一个 ,可以从另一个容器读取文件和标准输出docker 容器,但我不知道这是否可能。( g: R( x, R3 U k
& M. B# J/ | D+ z* Z! I
解决方案:
+ U1 O7 a. s7 J7 @- E. J docker 容器启动的进程的标准输出可通过docker logs $containerid命令获得(用于-f让它永远运行)。另一种选择是直接通过docker remote API流式传输日志。( N6 X3 c3 g, P5 [2 O6 u- G
对于访问日志文件(必要时请考虑记录 stdout 或其他标准解决方案,如 syslogd),您唯一的实时选项是配置卷(如 Marcus Hughes 建议将日志存储在容器外,并可从主机或另一个容器处理。
4 L+ ]7 p8 f8 C: [: c4 n. ^: @. H6 x0 M4 y如果不需要实时访问日志,可以使用以下命令导出文件(以 tar 格式)docker export |
|
|
|
|
|