무지개곰
article thumbnail

볼륨은 Docker에서 컨테이너와 호스트 사이 혹은 컨테이너와 컨테이너 사이에 데이터를 공유하기 위한 방법입니다. Docker의 볼륨에 대한 자세한 설명과 사용 방법, 관련된 명령어를 기록하겠습니다.

목차

볼륨 사용 방법

볼륨 관련 명령어


볼륨 사용 방법

볼륨을 생성하고 연결하고 데이터를 저장하는 과정으로 기록하겠습니다.

볼륨 생성

볼륨을 생성하는 명령어는 아래와 같습니다.

docker volume create [볼륨 명]

명령어를 입력하면 아래와 같이 볼륨 명만 출력됩니다.

볼륨 생성

생성된 볼륨의 목록을 확인하려면 아래의 명령어를 입력합니다.

docker volume ls

출력은 아래와 같습니다.

볼륨 출력

컨테이너 연결

볼륨을 연결하는 상황은 두 가지가 있습니다. 볼륨과 컨테이너를 연결하는 방법과 호스트와 컨테이너를 연결하는 방법이 있습니다. 두 가지 모두 기록하겠습니다.

컨테이너와 볼륨

컨테이너를 시작 혹은 생성할 때 '-v'옵션을 이용하여 연결할 수 있습니다.

docker -v [볼륨명]:[컨테이너 경로] [이미지 명]

1. 'docker run -it -v testVolume:/app1/testData1 --name connect_test1 alpine:latest sh'

위의 명령어를 실행하면 testVolume과 생성하는 connect_test1이라는 컨테이너의 /app1/testData1 폴더를 연결합니다.

터미널에서 ls로 폴더를 확인하여 app으로 들어가 보니 testData가 생성된 것을 볼 수 있습니다. 현재 testData폴더는 비어있는 것을 확인할 수 있습니다. 만약 폴더가 없는 상황이었다면 자동으로 폴더를 생성합니다.

 

2. 위의 방식과 같이 connect_test2라는 컨테이너를 생성하고 컨테이너의 /app2/testData2를 볼륨과 연결하였습니다.

connect_test2의 /app2/testData2에 connect_check.txt 파일을 만들었습니다.

 

3. connect_test2에서 생성한 파일을 connect_test1의 /app1/testData1에 가서 확인하였습니다.

connect_test2에서 생성한 connect_check.txt가 connect_test1에도 생성된 것을 볼 수 있습니다.

 

호스트와 컨테이너

호스트와 컨테이너를 연결하는 법도 기록하겠습니다.

1. 우선 컨테이너를 생성합니다. 명령어는 컨테이너와 볼륨을 연결하는 방식과 큰 차이가 없고 volume의 이름 대신 host의 경로를 지정해 주면 됩니다. 경로의 경우 저처럼 절대 경로를 사용하여도 되고 상대경로를 사용하여도 됩니다.

컨테이너를 생성하였고 host에도 connect_host 폴더가 생성된 것을 볼 수 있습니다.

 

2. host에서 'made_from_host.txt'라는 파일을 생성을 하였습니다.

컨테이너에서 /app3/testData3에서 ls를 하였을 때 파일이 없었지만 host에서 생성한 파일이 발견된 것을 볼 수 있습니다.

반대의 경우도 당연히 가능합니다.


볼륨 관련 명령어

volume에 관한 명령어 몇 가지만 기록하겠습니다.

1. docker volume create [볼륨 명] : 볼륨을 생성합니다.

2. docker volume ls : 볼륨의 목록을 확인합니다.

3. docker volume inspect [볼륨 명] : 볼륨에 대한 메타데이터를 확인합니다.

4. docker volume rm [볼륨 명] : 볼륨을 삭제합니다.

 

profile

무지개곰

@무지개곰

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!