Docker Volume이란 무엇일까?
컨테이너는 기본적으로 임시적인 환경이라서 컨테이너가 종료되거나 삭제되면 그 안의 데이터도 함께 사라진다.
도커 볼륨은 이러한 문제를 해결해주는 영구적인 데이터 저장 공간을 말한다.
볼륨(Volume)은 컨테이너 자체의 저장 공간을 사용하지 않고, 호스트 자체의 저장 공간을 공유해서 사용하는 형태이다.
도커 볼륨 사용 명령어
docker run -v [호스트의 디렉토리 절대경로]:[컨테이너의 디렉토리 절대경로] [이미지명]:[태그명]
그럼 이제 도커 볼륨을 통해 MySQL을 사용해보자.
1. MySQL 컨테이너 띄우기
$ cd /Users/jaeseong/Documents/Develop
$ mkdir docker-mysql # MySQL 데이터를 저장하고 싶은 폴더 만들기
# docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -v {호스트의 절대경로}/mysql_data:/var/lib/mysql -d mysql
$ docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -v /Users/dngus/Documents/Develop/docker-mysql/mysql_data:/var/lib/mysql -d mysql
참고) DB에 관련된 데이터가 저장되는 곳이 /var/lib/mysql인지는 Dockerhub MySQL의 공식 문서에 나와있다.
2. 컨테이너에 접속하여 데이터베이스 만들기
$ docker exec -it [MySQL 컨테이너 ID] bash
$ mysql -u root -p
mysql> show databases;
mysql> create database mydb;
mysql> show databases;
삭제 후에 다시 컨테이너를 생성해도 mydb 데이터베이스는 남아있는 것을 확인할 수 있다.
그 이유는 볼륨을 이용해 DB 저장 데이터를 컨테이너가 아니라 호스트 컴퓨터 저장 공간에 저장하기 때문이다!
'Deployment > Docker' 카테고리의 다른 글
Docker CLI (0) | 2025.03.21 |
---|---|
Docker를 활용하여 Nginx 설치 및 실행 (0) | 2025.03.19 |
Docker란 무엇인가 (0) | 2025.03.19 |