본문 바로가기
Docker/실습

[Docker-실습] 8.Container Storage

by Haengsin 2021. 10. 13.

[1. mysql db data 영구 보존]

 

-v <host path>:<container mount path>

$ docker run -d --name db -v /dbdata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password mysql:latest

 

-v <container mount path>

$ docker run -d --name db2 -v /var/lib/mysql -e MYSQL_ROOT_PASSWORD=password mysql:latest

 

(mysql container에 접속해서 database 생성 후, Host에 마운트된 Volume 에서 생성된 것 확인하기)

$ docker exec -it db /bin/bash

$ mysql -u root

$ create database jaewon;

$ show databases;

mysql container의 cd /var/lib/mysql 경로와

HOST의 /dbdata 경로에 생성한 데이터베이스에 대한 데이터들이 쌓여있는 것을 확인할 수 있다.

 

 

(컨테이너가 삭제된 후에도 데이터가 보존되어 있는 지 확인하기)

$ docker rm -f db

$ docker ps

$ ls /dbdata

컨테이너가 종료된 후에도 데이터들이 보존되어 있는 것을 확인할 수 있다.

 

※ Docker volume [command]

:볼륨과 관련된 명령어 실행

docker volume ls
docker volume help

 

 

 

 

[2. 웹 데이터 readonly 서비스로 컨테이너에 지원] 

Container를 수정하면 안되므로 ReadOnly 방식으로 마운트.

-v <host path>:<container mount path>:<read write mode>

$ docker run -d -v /webdata:/var/share/nginx/html:ro -p 80:80 nginx:latest

$ mkdir /webdata

$ cd /webdata/

$ echo "<h1>Test Web</h1>" > index.html

$ docker run -d --name web -v /webdata:/usr/share/nginx/html:ro -p 80:80 nginx:latest

 

 

 

 

[3. 컨테이너 간 데이터 공유]

$ docker run -v /webdata:/webdata -d --name df smlinux/df:latest

$ docker run -v /webdata:/usr/share/nginx/html:ro -d ubuntu:latest

※ df 명령어

$ df -h / 

: 디스크 사용량을 모니터링 할 때 사용

(1) df -h 의 실행 결과를 10초 마다 만들어내는 컨테이너 만들기 

$ cd ~

$ mkdir lab

$ cd lab

$ vi df.sh

df.sh

$ vi dockerfile

dockerfile

$ docker build -t metalk2003/df:latest .

$ docker push metalk2003/df:latest

$ docker run -d -v /webdata:/webdata --name df metalk2003/df:latest

 

$ cat /webdata/index.html

(2) web server 만들기(df에서 생성하는 index.html 파일을 연결)

$ docker run -d --name web -p 80:80 -v /webdata:/usr/share/nginx/html:ro nginx:latest

$ curl localhost

curl localhost

 

 

 

 

※ 이성미, [따배도] 도커 시리즈 ,TTABAE-LEARN, https://www.youtube.com/watch?v=IHuU3rZATbg, 2021-10-14

'Docker > 실습' 카테고리의 다른 글

Ubuntu 에 Docker 설치  (0) 2023.04.20
[Docker-실습] 9.Container Network  (0) 2021.11.15
[Docker-실습] 7.Container 리소스 관리  (0) 2021.09.09
[Docker-실습] 6.Container 운영  (0) 2021.08.27
[Docker-실습] 5.Container Registry  (0) 2021.08.23