도커(Docker) : 공유 디렉토리(폴더) 연결하기

반응형

도커(Docker) : 공유 디렉토리(폴더) 연결하기

본 글에서는 도커 컨테이너를 구동하는 로컬 호스트 시스템과 도커 컨테이너 간에 공유 디렉토리(폴더)를 연결(마운트)하는 방법을 설명한다.

 

기본적으로, 도커 컨테이너가 종료되면 그 동안 발생한 컨테이너 내부의 변경사항이 모두 손실된다(도커 이미지로 커밋하지 않는 이상). 따라서, 변경사항이 저장될 수 있도록 로컬 호스트 시스템의 디렉터리를 도커 컨테이너 내부에 마운트한 공유 디렉토리 상에서 작업을 수행하는 경우가 많다. 

 

다음과 같이 "-v" 또는 "--volume" 옵션을 추가하여 도커 컨테이너를 실행하면 공유 디렉터리를 연결할 수 있다.

  • host system directory : 공유하고자 하는 호스트 시스템 디렉토리 절대 경로
  • container directory : 호스트 시스템 디렉토리를 마운트할 컨테이너 내부 절대 경로
docker -v <host system directory>:<container directory> [IMAGE NAME]
docker -volume="<host system directory>:<container directory>" [IMAGE NAME]

 

이를 통해 도커 컨테이너 내부에서 호스트 시스템의 디렉토리에 접근할 수 있으며, 해당 디렉토리 내 파일 과 디렉토리들에 대한 수정과 저장이 가능하다.

 

위 옵션의 사용 예는 다음과 같다.

 

다음 명령을 통해 호스트 시스템의 "C:\" 디렉토리를 우분투 리눅스 컨테이너의 /home/workspace/ 디렉토리에 마운트할 수 있다.

docker run -it -v C:\:/home/workspace ubuntu:18.04

 

--volume 옵션 사용 시에는 다음과 같이 실행할 수 있다.

docker run -it --volume="C:\:/home/workspace" ubuntu:18.04

 

 

현재 디렉토리를 공유 디렉토리로 지정하기

공유하고자 하는 호스트 시스템 디렉토리의 절대경로를 사용하는 대신, "docker run" 명령이 실행되는 현재 디렉토리를 공유 디렉토리로 지정할 수 있다.

 

유닉스 기반 호스트 시스템(리눅스, 맥 등)에서는 다음과 같이 실행할 수 있다.

docker run -it --volume="$PWD:/home/workspace" ubuntu:18.04

 

윈도우즈 호스트 시스템의 명령 프롬프트 창에서는 다음과 같이 실행할 수 있다.

단, 윈도우즈 파워쉘의 경우 다음 옵션을 사용할 수 없으며, 유닉스 기반 호스트와 동일한 옵션을 사용해야 한다.

docker run -it --volume="%cd%:/home/workspace" ubuntu:18.04

 

디레토리 마운트에 대한 보다 자세한 내용은 아래 공식 문서 사이트에서 확인 가능하다.

 

| Docker Documentation

Docker run reference Docker runs processes in isolated containers. A container is a process which runs on a host. The host may be local or remote. When an operator executes...

docs.docker.com


 

 

파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음

댓글

Designed by JB FACTORY