본문 바로가기

Docker

컨테이너 데이터 영구보존

  • 컨테이너 이미지는 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