본문 바로가기
Docker

mysql 볼륨마운트 워크벤치, 여러 컨테이너 호스트볼륨 공유, 리소스 모니터링

by leopard4 2023. 11. 6.

docker run -d --name db --restart=always -v /dbdata:/var/lib/mysql -e MYSQL_USER=admin  -e MYSQL_PASSWORD= admin -e TZ=Asia/Seoul -e MYSQL_ROOT_PASSWORD=admin -p 3306:3306  mysql:latest

 

username : root도 가능

 

docker exec -it db /bin/bash

mysql -u admin -padmin 

 

 

 

 

 

 

 

여러 컨테이너간 볼륨 공유 

예제)1씩 증가하는 숫자 5초마다 보여주기

1.df 컨테이너에서 5초마다 index.html 생성

2.마운트된 /webdata/index.html로 덮어쓰기

3.덮어쓴 index.html 파일 web server로 송출

 

cat > df.sh

#!/bin/bash

mkdir -p /webdata
counter=0

while true
do
  ((counter++))
  echo "<html><body><h1>Count: $counter</h1></body></html>" > /webdata/index.html
  sleep 5
done

 

컨트롤 + D 저장

 

dockerfile

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

 

docker build -t smlinux/df:latest .

 

# df 컨테이너에서 /webdata 볼륨마운트
docker run -d -v /webdata:/webdata --name df smlinux/df:latest

# nginx 컨테이너로 마운트한 /webdata 데이터를 ReadOnly 속성으로 배포 
docker run -d --name web -v /webdata:/usr/share/nginx/html:ro -p 9002:80 nginx

 

/webdata가 호스트 볼륨 : /usr/share/nginx/html:ro가 컨테이너볼륨

결과

리소스 모니터링

 

모든컨테이너 리소스 모니터링

docker stats

 

도커 호스트의 실시간 event 정보를 수집해서 출력

docker events -f container=<name>

docker iamge -f container=<name>

docker logs 컨테이너 -f 

 

모니터링 툴

cAdvisor

GitHub - google/cadvisor: 실행 중인 컨테이너의 리소스 사용량 및 성능 특성을 분석합니다.

VERSION=v0.47.2 # 버전을 최신버전으로 바꾸세요 
sudo docker run \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:ro \
  --volume=/sys:/sys:ro \
  --volume=/var/lib/docker/:/var/lib/docker:ro \
  --volume=/dev/disk/:/dev/disk:ro \
  --publish=8080:8080 \
  --detach=true \
  --name=cadvisor \
  --privileged \
  --device=/dev/kmsg \
  gcr.io/cadvisor/cadvisor:$VERSION

 

컨테이너의 실행중인 프로세스 확인

 docker top 컨테이너

 

 

포트 테이블확인

iptables -t nat -L -n -v

 

해석 : 도커 172.17.0.0/16에서, 0.0.0.0 == anywhere 어디로든 나가면, MASQUERADE == 호스트IP로 바꿔서 내보내주겠다( NAT 해준다는것)

 

 

 

 

 

 

참고자료

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