이 해결책이 될 수 있습니다 명명 된 고정 표시기 볼륨을 작성 : 나는 당신의 앱 희망 유사한 무언가를 만들어보다
docker volume create --name centos-volume
그래서 호스트에 대한 자신의 볼륨의 경로가 /var/lib/docker/volumes/centos-volume/_data
. 내 dockerfile (. 당신이 그랬던 것처럼 내가 (고정 표시기 실행과 용기를 시작할 때 사본 내 컨테이너의 로그를 생성하는 스크립트 나는) 스크립트를 시작) : 스크립트의
FROM centos:7
RUN mkdir /script
COPY create-log.sh /script/
RUN chmod +x /script/create-log.sh
콘텐츠 (그것은 생성 /var/log/anaconda
에서 로그 파일)
#!/bin/bash
touch /var/log/anaconda/my-log.log
echo "hello world" >> /var/log/anaconda/my-log.log
나는 내 컨테이너를 시작합니다
docker run --rm -ti -v centos-volume:/var/log/anaconda/ my-centos ./script/create-log.sh
그래서이 명령은 내 컨테이너에서 스크립트를 실행하고의 내용을 마운트 내 /var/log/anaconda
내 컨테이너의 폴더가 내 볼륨의 내 호스트에 있습니다.
내가 확인보다 :
cat /var/lib/docker/volumes/centos-volume/_data/my-log.log
hello world
컨테이너를 다시 실행 한 후 두 번째 로그가 나타납니다
docker run --rm -ti -v centos-volume:/var/log/anaconda/ my-centos ./script/create-log.sh
$ sudo su
[[email protected] centos]# cat /var/lib/docker/volumes/centos-volume/_data/my-log.log
hello world
hello world
당신이 읽어야 https://www.loggly.com/docs/docker-syslog/, https://www.loggly.com/blog/top-5-docker-logging-methods-to-fit-your-container-deployment-strategy/ 및 https://gist.github.com/afolarin/a2ac14231d9079920864 – user2915097
로그 파일이 저장된 위치를 호스트에 마운트 할 수 있습니다. – lvthillo
나는 loggly에 대해 조금 읽었고 그것을 사용하는 것을 고려하고있다. 이 @ lorenzvth7 할 수 있으면 아주 간단하지만 도커 컨테이너가 시작될 때까지 로그 파일이 생성되지 않습니다 (컨테이너를 시작하면 내 호스트에 디렉토리를 마운트하면 로그 디렉토리가 비어 있습니다) – kshah