도커 볼륨
docker volume 명령어를 사용해서 볼륨을 활용할 수도 있다. 즉, 도커 자체에서 제공하는 볼륨 기능을 활용해 데이터를 보존할 수도 있다.
볼륨을 다루는 명령어는 docker volume로 시작하고, docker volume create 명령어로 볼륨을 생성할 수 있다.
docker volume create --name myvolume
myvolume이라는 볼륨을 생성한다.
docker volume ls
명령어를 통해 생성된 볼륨을 확인힌다.
docker run -i -t --name myvolume_1 \\
-v myvolume:/root/ \\
ubuntu:14.04
echo hello, volume! >> /root/volume
위 코드로 생성되는 컨테이너는 볼륨을 컨테이너의 /root/ 디렉터리에 마운트하므로 /root 디렉터리에 파일을 쓰면 해당 파일이 볼륨에 저장되게 된다.
/root 디렉터리에 volume라는 파일을 생성했으니 다른 컨테이너도 myvolume 볼륨을 쓰면 볼륨을 활용한 디렉터리에 volume 파일이 존재할 것이다.
docker run -i -t --name myvolume_2 \\
-v myvolume:/root/ \\
ubuntu:14.04
cat /root/volume
결과를 보면 같은 파일인 volume이 존재한다. 도커 볼륨과 같이 여러 개의 컨테이너에 공유되어 활용 될 수 있다.
docker inspect 명령어를 통해 볼륨이 실제 어디에 저장되어 있는지 확인할 수 있다.
docker inspect --type volume myvolume
ls /var/lib/docker/volumes/myvolume/_data
cat /var/lib/docker/volumes/myvolume/_data/volume
해당 디렉터리의 파일을 살펴보면 컨테이너에서 사용했던 파일이 남아있다.
docker volume create 명령을 별도로 입력하지 않아도 -v 옵션을 입력할 때 이를 수행하도록 설정할 수 있다. 컨테이너에서 공유할 디렉터리의 위치를 -v 옵션에 입력하면 해당 디렉터리에 대한 볼륨을 자동으로 생성한다. 아래 코드를 참고하자
docker run -i -t --name volume_auto \\
-v /root \\
ubuntu:14.04
컨테이너를 생성하고 호스트로 나온다.
docker volume ls
명령어를 확인하면 이름이 무작위인 16진수 형태의 볼륨이 자동으로 생성된 것을 확인할 수 있다.
생성된 volume_auto 컨테이너가 어떤 볼륨을 사용하는지 확인하는 다른 방법은
docker container inspect volume_auto
이렇게도 알 수 있는데 볼류 마운트에 대한 정보도 포함되어 있기 때문이다.
이렇게 도커 볼륨을 생성하고 삭제하다 보면 불필요한 볼륨들이 남아있을 때가 있게 되는데 도커 볼륨을 사용하고 있는 컨테이너를 삭제해도 볼륨이 자동으로 삭제가 되지 않기 때문이다.
docker volume prune
명령어를 통해 한 번에 삭제가 가능하다.
📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다.
'DevOps > Docker' 카테고리의 다른 글
[Docker] : docker network 기능 (0) | 2022.02.17 |
---|---|
[Docker] : docker network 구조 (0) | 2022.02.17 |
[Docker] : Volume Container, 볼륨 컨테이너 (0) | 2022.02.16 |
[Docker] : host volume 공유, 호스트 볼륨 공유 (0) | 2022.02.16 |
[Docker] 도커 볼륨, docker volume (0) | 2022.02.15 |
댓글