도커 볼륨

Seasoning·2021년 9월 11일
0

도커 컨테이너

목록 보기
2/2

컨테이너는 언제든 생성하고 삭제할 수 있기 때문에 컨테이너 내부의 자료 역시 컨테이너가 삭제 되면 사라진다. 따라서 데이터를 보관하고 싶다면 별도로 저장을 할 필요가 있다.

1) Bind mount

host 공간의 일부를 마운트해서 컨테이너의 볼륨으로 할당한다. 호스트의 파일 시스템 어디서든 마운트를 한다.

mkdir /home/secadm/ex07
cd /home/secadm/ex07
touch bindmount.txt
echo "bind-mount" > bindmount.txt

# sudo docker container run -v [호스트 경로]:[컨테이너 경로] [이미지명:태그]
sudo docker container run -d -it --name bindmount -v /home/secadm/ex07:/bindmount-test ubuntu:18.04

# 생성한 컨테이너의 bindmount 디렉토리 조회 & 현재 host 디렉토리 조회
sudo docker exec -it bindmount ls -al ./bindmount-test
ls -al


컨테이너에 마운트된 디렉토리를 조회하면 bindmount 된 host의 디렉토리 내부의 파일과 동일하다.

컨테이너에 직접 접속하여 bindmount 디렉토리내 파일 수정을 했을 때 host에서 반영이 되는지 확인.

sudo docker container attach bindmount
cd bindmount-test/
echo "bind mount" > bindmount.txt
cat bindmount.txt

host에서 잘 반영되었는지 확인

cat bindmount.txt

2) Volume

bindmount 처럼 임의의 파일시스템에 지정을 하는 것이 아니라 정해진 곳에 볼륨을 마운트 한다.

# 컨테이너 접속 하여 볼륨에 파일 생성
sudo docker container run -d -it --name volume -v volume1:/volume-test ubuntu:18.04
sudo docker container attach volume

echo "volume" > ./volume-test/volume.txt
cat ./volume-test/volume.txt

# 호스트에서 해당 volume의 파일 확인
cd /var/lib/docker/volumes/volume1/_data
cat volume.txt

profile
적절하게 소금을 칠 줄 아는 엔지니어되기

0개의 댓글