docker0 = 도커의 Gateway
docker network create (-d bridge) br1
docker network create -d host
--subnet 192.168.10.0/24
--gateway 192.168.10.1 br1
docker network create br0
/ bridge=default
[Attach / Detach]
docker attach [컨테이너명] - 진
CTRL + P / Q / C
docker exec 명령 실행까지 진행
docker run -it --name myweb ubuntu bash
docker exec [컨테이너명] touch /tmp/test.txt
docker exec [이름] ls /tmp
docker exec [이름] ps aux
** 꿀팁 **
docker top [이름] - top 명령 가능
docker stats [이름]
docker port [name]
docker rename web1 web2
호스트 -> 컨테이너
docker cp /index.html web2:/usr/share/nginx/html
Successfully copied 2.05kB to web2:/usr/share/nginx/html
---------------------------------
컨테이너 -> 호스트
docker cp web2:/usr/share/nginx/html/index.html /tmp
docker logs [name] - 로그 확인
docker logs -f [name] - 실시간 로그
[리소스 제한]
최소 메모리 용량 6M (LIMIT)
최대 메모리 용량 512M
SWAP 메모리 용량 512M 설정
--------------------------------
초과시 KILL
docker run -d -m 512m --memory-swap 512m nginx
docker run -d -m 512m --memory-swap 512m --00m -kill-disable nginx
---------------------------------
[CPU 제한]
docker run -d -m 128m --cpus="0.5" nginx
[2배 / 0.5배 할당]
docker run -d --cpu-shares 2048/ 512 ubuntu
[CPU 중 0-1번 CPU 할당]
docker run -d --cpuset-cpus 0-1 ubuntu
docker inspect test1 | grep Cpuset
"CpusetCpus": "0-1",
Block I/O 리소스 제한
1. 0.2배 설정(기본 500MB)
docker run -it --blkio-weight 100 ubuntu /bin/bash
docker inspect --format='{{.HostConfig.BlkioWeight}}' test
2. Write I/O 초당 1M 속도 제한
docker run -it --device-write-bps /dev/sda:1mb ubuntu
3. 초당 데이터 전송량 제한
docker run -it --device-write-iops /dev/sda:10 ubuntu
stat -fc %T /sys/fs/cgroup
cgroup2fs
⚠️ cgroup v2는 --device-write-iops 비호환!
cgroup v2에서는 blkio가 아닌 io 컨트롤러를 쓰고, 도커에서 공식적으로 아직 완전 지원하지 않아.
→ 우회하려면 cgroup v1으로 부팅하거나 systemd 세팅 수정해야 하는데, 보통 복잡함.
1. HOST 모니터링
dnf -y install htop/glances
htop /glances
lscpu -a
lsmem
free
2. Dockerfile 이용한 STRESS 이미지 빌드
mkdir build
cat << EOF > Dockerfile
FROM debian
RUN apt-get update; apt-get -y install stress
CMD ["/bin/sh","-c"."stress -c 2"]
EOF
docker build -t mystress .
메모리 100M 제한 / stress 이용하여
80M 프로세스 1개 5초동안 수행
time docker run --rm -m 100m --memory-swap 100m stress stress --vm 1 --v-bytes 90m -t 5s
stress: info: [1] dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd
stress: info: [1] successful run completed in 5s
real 0m5.218s
user 0m0.007s
sys 0m0.010s
🔧 주요 기능 (옵션)
옵션 설명
--cpu N | N개의 CPU 부하 작업 실행 |
--vm N | N개의 메모리 부하 작업 실행 |
--vm-bytes X | 메모리 X만큼 사용 (ex. 100M) |
--io N | N개의 IO 작업 실행 |
--hdd N | N개의 디스크 쓰기 작업 실행 |
-t SECONDS | 몇 초 동안 부하를 줄지 지정 |
docker run -d --cpuset-cpus 1 --name cpu1 stress stress --cpu 1
[CPU 개수 제한]
time docker run --rm -m 100m --memory-swap 100m stress stress --cpu 1 --vm 1 --vm-bytes 95m -t 60s
[swap 제한]
time docker run --rm -m 100m --memory-swap 300m --pid=host stress stress --vm 1 --vm-bytes 250m --vm-hang 0 -t 30s
docker run --rm -m 100m --memory-swap 200m --cpus 0.5 stress stress --vm 1 --vm-bytes 90m -t 30s
'IT 엔지니어 > CLOUD' 카테고리의 다른 글
Docker image (0) | 2025.05.14 |
---|---|
Docker Resource Limit (0) | 2025.05.13 |
Docker Network 심화 (0) | 2025.05.12 |
Docker file (0) | 2025.05.11 |
Docker Network (0) | 2025.05.11 |