CICD/docker
[Docker] Container Storage
[dev] hiro
2024. 6. 18. 09:18
해당 포스팅은 이성미 강사님의 따라 배우는 도커(따배도, https://www.youtube.com/@ttabae-learn)를 보고 공부한 내용을 정리한 블로그입니다.
아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁
오늘은 고통스럽다.
내일은 더 고통스럽다.
그리고 내일 모래는 아름다울 것이다.
Mǎ Yún(알리바바 그룹 창업자 겸 회장)
Container Volume
- 컨테이너 이미지는 read-only(컨테이너로 올리면 수정가능)
- 컨테이너에 추가되는 데이터들은 별도의 RW 레이어에 저장.
- RO 와 RW 하나같이 보이게 하는 시스템 ⇒ union file system
- 컨테이너에 추가되는 이미지는 별도의 레이어에서 생성
Data보존
- rw(/var/lib/mysql)에 저장. ⇒ 대신에 특정 저장소에 저장하도록.(/dbdate) 호스트의 DB 데이터 영구보존
- docker run -d --name db
-v /dbdata:/var/lib/mysql => 디스크에 저장하도록
-e MYSQL_ALLOW_EMPTY_PASSWORD=pass
mysql:latest - -v <hostpath>:<container mount path>(/var/lib/mysql 내용을 hostpath에 저장)
-v <hostpath>:<container mount path>:<read write mode>
-v <container mount path>(/var/lib/docker/volume/UUID/_data 디렉토리에 저장) - docker run -v /webdata:/webdata -d —name df smlinux/df:latest
docker run -d -v /webdata:/usr/share/nginx/html:ro -d ubuntu:latest
컨테이너끼리 데이터 공유하기
- df 명령어: 디스크 사용량을 모니터링할 때 사용
10초마다 디스크 사용량을 index.html에 작성하는 code
cat 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 run -d -v /webdata:/webdata —name df smlinux/df:latest