Docker:是否有可能使两个Docker容器logging在同一个文件上?
我有两个Dokcer容器 。
每个容器的日志都写在文件a.txt中
ContainerA – > /VolumeA/a.txt
ContainerB – > /VolumeB/a.txt
我想统一在相同的文件和相同的日志logging,所以我打算为这两个容器装载相同的SharedVolume ,并输出相同的a.txt文件的日志:
Intented Result :VolumeA OR VolumeB —> /SharedVolume/a.txt
我的问题是,不知道是否每个容器, 将在日志logging结束时擦除或写入 。
当然,我的目的是每次都在文件末尾find一种方法来进行日志logging。
另外我没有并发访问的问题 ,因为ContainerA始终在ContainerB之前进行日志logging
build议?
您可以将相同的卷装载到多个容器中。 例如: $ docker run -di -v mynewvol:/logdir busybox 'echo first > /logdir/logfile && cat -v' $ docker ps 862068e5f930 busybox "/bin/sh -c 'echo ..." 5 seconds ago Up 4 seconds infallible_roentgen $ docker run -it --rm -v mynewvol:/logdir busybox /bin/sh -c 'echo second >> /logdir/logfile; cat /logdir/logfile' first second
$ docker run -di -v mynewvol:/logdir busybox 'echo first > /logdir/logfile && cat -v' $ docker ps 862068e5f930 busybox "/bin/sh -c 'echo ..." 5 seconds ago Up 4 seconds infallible_roentgen $ docker run -it --rm -v mynewvol:/logdir busybox /bin/sh -c 'echo second >> /logdir/logfile; cat /logdir/logfile' first second
所以这应该开箱即用。