개발/docker
docker volume 사용하기
2어진
2021. 11. 2. 19:50
컨테이너를 지울경우 그간 저장된 파일이 날아가는걸 막고, 여러 컨테이너에 각각 저장된 파일들을 합쳐주기 위해 볼륨을 사용.
1. 볼륨 생성하기
sudo docker volume create 볼륨명
sudo docker volume create appname_volume
2. 컨테이너와 볼륨 연결
# 컨테이너 생성
sudo docker create --name 컨테이너명 -p 외부포트:내부포트 -v 볼륨명:/경로/ 이미지명:태그명
sudo docker create --name node0 -p 30060:3006 -v app_volume:/app/ dockerId/imgName:test
sudo docker create --name node1 -p 30061:3006 -v app_volume:/app/ dockerId/imgName:test
sudo docker create --name node2 -p 30062:3006 -v app_volume:/app/ dockerId/imgName:test
# 컨테이너 실행
sudo docker start node0
sudo docker start node1
sudo docker start node2
### 혹은
# 바로 실행
sudo docker run --name 컨테이너명 -p 외부포트:내부포트 -v 볼륨명:/경로/ 이미지명:태그명
sudo docker run --name node0 -p 30060:3006 -v app_volume:/app/ dockerId/imgName:test
sudo docker run --name node0 -p 30061:3006 -v app_volume:/app/ dockerId/imgName:test
sudo docker run --name node0 -p 30062:3006 -v app_volume:/app/ dockerId/imgName:test
3. 확인
#### 테스트용 파일 생성
# 컨테이너 접속
sudo docker exec -it 컨테이너명 /bin/bash
sudo docker exec -it node0 /bin/bash
# 테스트용 디렉토리 생성
mkdir testDir
# 접속 끊기
exit
## 혹은
#로컬 폴더 컨테이너로 복사
sudo docker cp 로컬파일경로 컨테이너명:파일경로
sudo docker cp ./testDir node0:/app/
# 하나의 볼륨을 같이 사용중인 다른 컨테이너 접속
sudo docker exec -it node1 /bin/bash
#테스트용 디렉토리 생성여부 확인
ls
node0 컨테이너에 생성/복사한 디렉토리가 node1, node2 에도 생성되어 있는걸 확인할 수 있다.