컨테이너 스토리지 - 실습편

deveopser·2022년 12월 8일
0

Docker

목록 보기
13/15
post-thumbnail

mySQL DB data 영구 보존하기

컨테이너 실행
docker run -d --name db -v /dbdata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=pass mysql:latest

동작중인 컨테이너 접속
docker exec -it db /bin/bash
mysql -u root -ppass
CREATE DATABASE ttabae;
show databases;
exit

cd /dbdata/ttabae
cd
docker rm -f db
cd /dbdata/ttabae

/var/lib/mysql/에 저장된 db는, mount되어 있는 HOST의 /dbdata/ 경로에도 저장이 된다.
mysql db가 삭제되었다 하더라도, HOST 상에는 존재하게 된다.

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

docker inspect db

host path 미지정시 var/lib/docker/volume/UUID/_data가 임의로 생성된 후 저장

웹데이터 readonly 서비스로 지원하기

mkdir /webdata
cd /webdata/
echo "<h1> YouTUBE SEUNGHAN-LEE</h1>" > index.html
cat index.html
cd
docker run -d --name web -p 80:80 -v /webdata:/usr/share/nginx/html:ro nginx:1.14

Container간 데이터 공유하기

디스크 사용량을 확인해보자
df -h 
df.sh :

#!bin/bash
mkdir -p /webdata
while true
do
	df -h / > /webdata/index.html
	sleep 10
done

dockerfile : 
FROM ubuntu:18.04
ADD df.sh /bin/df.sh
RUN chmod +x /bin/df.sh
ENTRYPOINT ["/bin/df.sh"]

docker build -t smlinux/df:latest .
docker images

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

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

출처 : https://www.youtube.com/watch?v=CXrrkl4Zamc&list=PLApuRlvrZKogb78kKq1wRvrjg1VMwYrvi&index=20

profile
부끄럽게 공부하지말자.

0개의 댓글