도커(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. 참고 자료
더 자세한 정보는 도커의 공식 문서를 참조하세요:
- Manage data in Docker - 볼륨 관리에 관한 일반적인 정보
- Use volumes - 볼륨 사용 방법에 대한 상세 정보
요약
도커에서 볼륨을 추가하면서 특정 서브 폴더를 제외하는 것은 직접적인 명령어나 옵션이 없기 때문에, 복수의 볼륨을 사용하여 필요한 부분만 마운트하는 방법이 가장 효과적입니다. .dockerignore
는 빌드 과정에서 유용하지만, 볼륨 마운트에는 적용되지 않습니다.
'About > Docker' 카테고리의 다른 글
[Docker] Docker 이미지 정리하기: 불필요한 이미지 제거하는 완벽 가이드 (0) | 2023.11.20 |
---|---|
[Docker] 도커(Docker)에서 한 번에 모든 이미지 삭제하는 방법 (1) | 2023.11.20 |
[Docker] Dockerfile에서 RUN과 CMD의 차이점 (0) | 2023.11.18 |
[Docker] Dockerfile의 COPY와 ADD 명령어 비교: 언제 어떤 명령어를 사용해야 할까? (0) | 2023.11.18 |
[Docker] Docker 컨테이너에서 호스트 머신의 로컬호스트에 접속하는 방법 (host.docker.internal) (0) | 2023.11.18 |