프로그래밍/docker

도커로 스프링부트 로그 파일 마운트(볼륨) 하는 방법

승민아 2024. 5. 26. 09:55

컨테이너에서 돌아가고 있는 서버에서 남긴 로그 파일들을 호스트에서 보관관리를 하고 싶었다.

도커로 MySQL 이미지 파일을 volumes로 마운트를 해봤었다.

https://non-stop.tistory.com/721

 

MySQL 데이터 백업 및 가져오기/Docker MySQL 볼륨 마운트

MySQL의 데이터를 백업해보고 그 데이터를 Docker MySQL에 가져와보자. 그리고Docker 컨테이너를 통해 올린 DB 데이터를 Host에서 관리해보자. 먼저 Docker MySQL 볼륨을 마운트해보자.즉, Docker 컨테이너에

non-stop.tistory.com

 

나는 volumes가 디비 관련해서 지원하는 옵션인줄 알았으나

사실 도커 컨테이너와 호스트를 마운트하는 원리는 똑같았었다.

 

도커의 볼륨 설정이 마운트하는 설정이였던 것이였다.

 

로그 파일을 생성하는 설정 파일인

logback-spring.xml의 일부이다.

현재 서버 컨테이너의 "./logs/login.txt" 경로에 파일이 생성된다.

=> 즉 컨테이너에서 서버 파일이 실행되는 위치인 "/logs" 폴더를 호스트와 연결할 필요가 있다.

 

 

docker-compose.yml를 다음과 같이 volumes로 마운트 설정을 해주면된다.

version: '3'
services:
  server:
    ...
    volumes:
      - /home/ubuntu/docker/logs:/logs
  • volumes에 - {호스트 경로}:{컨테이너 경로}로 컨테이너 경로를 호스트 경로로 마운트할 수 있다.
  • 현재 호스트의 "/home/ubuntu/docker/logs"를 컨테이너 "/logs"와 마운트한 상태이다.

 

컨테이너에 접속해서 "/logs"에 생성된 로그 파일을 확인해봤다.

 

 

이제 호스트에서 "/home/ubuntu/docker/logs" 경로에 파일들을 확인해보자.

잘 마운트 되었다.

컨테이너에서 생성된 로그 파일을 이제 호스트에서 관리할 수 있다.!