2017-10-23 15 views
0

나는 두 개의 Dokcer 컨테이너을 가지고 있습니다. 각 컨테이너Docker : 동일한 파일에 두 개의 Docker 컨테이너를 로깅 할 수 있습니까?

로그가 ContainerA

a.txt이 파일에 작성됩니다 ->/VolumeA/a.txt

ContainerB ->/VolumeB/a.txt

같은 파일과 같은 볼륨에서 로깅을 통일 시켜서 동일한 것을 마운트하려고합니다. 동일한 a.txt이 파일 컨테이너의 모두 SharedVolume, 출력 로그 :

들이 의도결과 : VolumeA OR VolumeB --->/SharedVolume/A. txt

내 문제는, 각 컨테이너가 이 로깅 할 때의 끝에 지우거나 쓰는지 알지 못한다는 것입니다. 물론

내 목적은 파일 끝마다의 로깅, 을 만들 수있는 방법을 찾는 것입니다. 또한

내가 ContainerA 이후 동시 액세스의 문제는 ContainerB

제안하기 전에 항상 로깅하지?

+0

왜이 작업을 원하거나 필요로하는지 더 자세히 이야기 해 주실 수 있습니까? – johnharris85

+0

@ johnharris85 컨테이너 로깅을 중앙 집중화하고 싶습니다. 하나의 입력으로 로깅 대시 보드를 생성하기 위해 전체 플랫폼의 로그 파일을 사용해야합니다. – firasKoubaa

+1

[Docker Logging Driver] (https : //docs.docker. co.kr/engine/admin/logging/overview /) 도움이 될까요? – juanlumn

답변

1

동일한 볼륨을 둘 이상의 컨테이너에 장착 할 수 있습니다. 예 : $ 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 이렇게하면 정상적으로 작동합니다.

+1

... 두 프로세스가 동일한 파일에 동시에 조정을하지 않고 쓰려고한다는 점을 제외하면 아마도 엉망이 생길 것입니다. – larsks

+0

@larsks 네, 정말 엉망이 될 수 있다는 것에 전적으로 동의하지만 질문은 동시 액세스가 문제가되지 않는다는 정보로 끝납니다. 나는 그가 무엇을하고 있는지를 알고 있다고 생각했다. – odk

+0

아 맞아, 나는 그 비트를 놓쳤다. 나는 여전히 op가 Docker가 제공하는 로깅 기능을 사용하는 것이 더 나을 것이라고 생각한다. – larsks