[Docker] 데이터 연속성

Woong·2022년 6월 16일
0

Docker, k8s

목록 보기
4/8

컨테이너가 삭제되면 데이터도 삭제

  • Mysql DB 컨테이너 등 DB 혹은 스토리지 컨테이너의 데이터가 사라지는 문제가 있음
  • docker run -d --name mydb --env=MYSQL_ROOT_PASSWORD=mypass --env=MYSQL_USER=myuser1 --env=MYSQL_PASSWORD=userpass --env=MYSQL_DATABASE=userdb mysql:5.7
    • 컨테이너 내의 추가,수정된 데이터가 컨테이너가 삭제되면 같이 삭제되므로 데이터를 계속 사용할수 없다.

외부 스토리지 연결

  • 컨테이너에서 작업한 데이터를 영구적으로 사용하기 위해서는
    • -> 컨테이너 데이터를 외부 스토리지에 저장
    • 옵션은 -v
$ docker run -d --name mydb2 --env=MYSQL_ROOT_PASSWORD=mypass --env=MYSQL_USER=myuser1 \
  --env=MYSQL_PASSWORD=userpass --env=MYSQL_DATABASE=userdb -v /var/db:/var/lib/mysql mysql:5.7
$ docker exec -it mydb2 /bin/bash 
root@92c9ce7991cf:/# mysql -u myuser1 -pmypass
mysql> create table mytable
      (id char(10), name varchar(20), addr varchar(80));
Query OK, 0 rows affected (0.02 sec)

mysql> insert into mytable
    -> values('sunhee','lee sunhee','Seoul');
Query OK, 1 row affected (0.00 sec)

mysql> select * from mytable
    -> ;
+--------+------------+-------+
| id     | name       | addr  |
+--------+------------+-------+
| sunhee | lee sunhee | Seoul |
+--------+------------+-------+
1 row in set (0.00 sec)

mysql> exit
  • 컨네이너 삭제후 컨테이너를 다시 실행하면 db 레코드를 그대로 사용할수 있다

0개의 댓글