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
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
참고자료
https://www.youtube.com/watch?v=IHuU3rZATbg&list=PLApuRlvrZKogb78kKq1wRvrjg1VMwYrvi&index=20
'Docker' 카테고리의 다른 글
Docker Permission Denied Error (사용자를 docker 그룹에 추가), restart (0) | 2025.03.27 |
---|