[Docker] 도커 기본 명령어 (3) - volume
01 Feb 2023해당 포스트는 inflearn에서 subicura님의 초보를 위한 도커 안내서의 강의를 듣고 정리한 문서입니다.
도커 기본 명령어 (3)
volume - 실행중인 컨테이너 목록 조회
도커의 컨테이너는 데이터를 저장할때 컨테이너 계층에 저장을 하게되어 만약 컨테이너를 삭제를 할 경우 내부의 데이터도 같이 사라지게 됩니다.
도커의 공식문서에 따르면, volume 옵션 사용시 아래의 몇가지 이점을 가질 수 있다고 말한다.
- Docker CLI 명령 또는 Docker API를 사용하여 volumn를 관리 가능
- Linux와 Windows 컨테이너에서 모두 작동
- 여러 컨테이너 간에 volume을 안전하게 공유가 가능
- 원격 호스트 또는 클라우드 제공자에 volume을 저장, volume의 내용을 암호화 하거나 다른 기능을 추가가 가능
명령어는 아래와 같이 옵션을 넣어 사용합니다.
왼쪽에는 저장소의 디렉토리를, 오른쪽에는 Docker의 컨테이너를 넣어 둘을 연결시킵니다.
-v [HOST DIRECTORY]:[CONTAINER DIRECTORY]
이제 전 포스트에 만들었던 mysql을 volume옵션을 넣어 만들어보도록 하자.
아래의 옵션을 넣어 사용할 수 있다.
docker run -d -p 3306:3306 \
-e MYSQL_ALLOW_EMPTY_PASSWORD=true \
--network=app-network \
--name mysql \
-v C/Users/dhaud/mysql:/var/lib/mysql \
mariadb:10.9
다시 동일하게 워드프레스 관련 권한을 넣어주고 워드프레스를 실행해보자.
docker exec -it mysql mysql
create database wp CHARACTER SET utf8;
grant all privileges on wp.* to wp@'%' identified by 'wp';
flush privileges;
quit
테스트로 글을 작성해보자.
이후 컨테이너를 삭제했다가 다시 위의 docker run
명령을 통해 mysql 컨테이너를 올려주도록 하자.
docker stop mysql
docker rm mysql
docker run -d -p 3306:3306 \
-e MYSQL_ALLOW_EMPTY_PASSWORD=true \
--network=app-network \
--name mysql \
-v C/Users/dhaud/mysql:/var/lib/mysql \
mariadb:10.9
다시 워드프레스에 접속한다면, 전에 작성했던 글이 그대로 있는것을 확인 할 수 있다!