본문 바로가기

About/Docker

[Docker] 볼륨 추가 시 필요 없는 특정 폴더 쉽게 제외하기 (.dockerignore)

도커(Docker)는 애플리케이션을 컨테이너화하여 개발 및 배포를 간편하게 해주는 툴입니다. 때때로, 우리는 특정 볼륨을 도커 컨테이너에 추가하고 싶지만 그 안의 일부 서브 폴더는 제외하고 싶을 수 있습니다. 이 글에서는 도커에 볼륨을 추가하면서 특정 서브 폴더를 제외하는 방법에 대해 알아보겠습니다.

1. 볼륨 추가의 기본

먼저, 도커에 볼륨을 추가하는 기본적인 방법부터 이해해야 합니다. 볼륨은 컨테이너의 데이터를 보존하고, 컨테이너 사이에 데이터를 공유하는 데 사용됩니다. 도커 볼륨을 추가하는 가장 간단한 방법은 docker run 명령어에 -v 또는 --volume 옵션을 사용하는 것입니다.

예를 들어, 로컬의 /mydata 폴더를 컨테이너의 /data 폴더에 마운트하는 경우 아래와 같이 명령을 실행합니다:

docker run -v /mydata:/data my_image

 

2. 서브 폴더 제외하기

하지만, 이 경우 /mydata 폴더 안의 모든 파일과 폴더가 컨테이너에 복사됩니다. 만약 /mydata 내의 특정 서브 폴더를 제외하고 싶다면 어떻게 해야 할까요?

방법 1: .dockerignore 파일 사용

docker build 과정에서 특정 파일이나 폴더를 무시하려면 .dockerignore 파일을 사용합니다. 이 파일은 .gitignore와 유사하게 작동합니다. 하지만, .dockerignore는 이미지 빌드시에만 적용되므로, 볼륨을 마운트할 때는 적용되지 않습니다.

방법 2: 복수의 볼륨 사용

가장 간단하고 효과적인 방법은 필요한 폴더만 별도의 볼륨으로 마운트하는 것입니다. 예를 들어, /mydata 폴더 내에서 subfolder를 제외하고 싶다면, subfolder를 제외한 나머지 폴더들을 각각 별도의 볼륨으로 마운트해야 합니다.

docker run -v /mydata/folder1:/data/folder1 -v /mydata/folder2:/data/folder2 my_image

 

이 방법은 명시적이지만, 많은 폴더를 개별적으로 관리해야 하는 번거로움이 있습니다.

3. 참고 자료

더 자세한 정보는 도커의 공식 문서를 참조하세요:

요약

도커에서 볼륨을 추가하면서 특정 서브 폴더를 제외하는 것은 직접적인 명령어나 옵션이 없기 때문에, 복수의 볼륨을 사용하여 필요한 부분만 마운트하는 방법이 가장 효과적입니다. .dockerignore는 빌드 과정에서 유용하지만, 볼륨 마운트에는 적용되지 않습니다.