- 컨테이너 이미지는 readonly
- 컨테이너가 삭제되면 그 안에 있는 데이터도 함께 삭제가 된다. 그래서 컨테이너가 삭제되더라도 데이터는 영구 보존할 필요가 있는 것이다.
- 즉, 다른 장소에 데이터를 저장
- docker run -d —name db -v /dbdata:/var/lib/mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=master mysql:latest
- 볼륨 마운트해서 디스크에 저장해놓는 것.
1. volumn 옵션 사용
1) -v <host path>:<container mount path>
- 컨테이너의 디렉터리와 호스트의 디렉터리를 영구적으로 보존하도록 하는 것.
docker run -d --name db -v /Users/mi/workspace/docker-tests/dexdata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mass mysql:latest
- 데이터를 저장할 디렉터리 지정
docker exec -it db /bin/bash
- 컨테이너에 접속
mysql -u root -pmaster
create database dex;
docker rm -f db
dexdata에 영구적으로 데이터가 있는지 확인
2) -v <host path>:<container mount path>:<read write mode>
- <read write mode>
- default : rw : read and write
- ro : readonly
/var/lib/docker/volume/UUID/_data 에 영구 저장이 된다.(path를 지정하지 않는다면)
도커가 지정한 path에 저장된다.
도커 영구 데이터 삭제
docker volume ls
docker volume rm [volume hash]
3) -v <container mount path>
- 웹서버에서 볼륨 마운트를 해서 고객에게 서비스를 제공하겠다.
- 데이터 흐름
- 하드디스크 -> docker web server -> client
mkdir data
cd data
echo "<h1>Hello dexlee</h1>" > index.html
cat index.html
docker run -d --name web -p 80:80 -v /Users/mi/wdata:/usr/share/nginx/html:ro nginx:1.14
localhost:80 접속해서 데이터 확인
2. 컨테이너끼리 데이터 공유
- 가능하다.
'Docker' 카테고리의 다른 글
Docker 모니터링 (0) | 2021.11.10 |
---|---|
docker container 리소스 관리 (0) | 2021.11.05 |
Docker 사용하기 (0) | 2021.11.05 |
컨테이너 보관 창고 (0) | 2021.11.05 |
Dockerfile 작성방법 (0) | 2021.11.05 |