2026. 6. 12. 19:37ㆍDocker
● Docker 리소스 제한
- Memory 제한
- CPU 제한
- BLOCK I/O (DIST I/O) 제한
Ⅰ. Memory 제한
Ⅰ - Ⅰ. 메모리 리소스 제한 옵션
| Memory 제한 | 구분 | 설명 | 비고 | |
| 개념 | 기본적으로 컨테이너는 호스트의 모든 메모리를 사용할 수 있지만, 필요 시 컨테이너 단위로 메모리 사용량을 제한할 수 있음 |
시스템 안정성 및 리소스 보호 목적 |
||
| 시스템 전체의 안정성과 리소스 관리를 위한 설정 가능 | ||||
| 제한 단위 | b (bytes) | 단위 생략 시 기본값 bytes |
||
| k (kilobytes) | ||||
| m (megabytes) | ||||
| g (gigabytes) | ||||
| 주요 옵션 | 옵션 | 설명 | ||
| -m, --memory | 컨테이너 최대 메모리 용량 지정 | |||
| --memory-swap | 스왑 메모리 포함 총 메모리 제한 | |||
| --memory-reservation | 소프트 제한 (경고 기준) | |||
| --oom-kill-disable | OOM (Out Of Memory) 킬러 비활성화 | |||
| OOM (Out Of Memory) |
메모리 초과 시 발생하는 커널 이벤트로, 프로세스를 강제 종료하여 시스템 보호 |
--oom-killer-disable로 방지 가능 |
||
| 운용 포인트 | 과도한 메모리 사용 방지 | 자원 모니터링 필수 (docker stats) |
||
| 서비스 간 메모리 경쟁 최소화 | ||||
| DB, WAS 등 고부하 컨테이너에 필수 | ||||
Ⅰ - Ⅱ. 명령어 사용 예시
| 명령어 사용 예시 |
예시 | 설명 |
| docker container run -d -m 512m nginx | 최대 메모리 용량 512M, swap 메모리 용량 512M 으로 설정하고 초과되면 Kill 실시 |
|
| docker container run -d -m 200m -memory-swap 300m nginx | 최대 메모리 용량 2OOM, swap 메모리 용량 300M 으로 설정하고 초과되면 Kill 실시 |
|
| docker container run -d -m 100m -memory-swap 100m nginx | 최대 메모리 용량 100M으로 설정하고 초과되면 Kill 실시 (swap 메모리 없음) |
|
| docker container run -d -m 1g -memory-swap 1g -memory-reservation 500m nginx | 최소 메모리 500M로 보장하면서 최대 1G까지 사용 가능하고 초과되면 Kill 실시 |
|
| docker container run -d -m 200m -memory-swap 200m -oom-kill-disable nginx | 최대 메모리 200M을 초과하면 OOM Killer가 프로세스를 Kill하지 못하도록 설정 |
Ⅱ. CPU 리소스 제한
Ⅱ - Ⅰ. CPU 리소스 제한 옵션
| CPU 리소스 제한 |
구분 | 설명 | 비고 | ||
| 개념 | 컨테이너별 CPU 코어 사용량 및 비율을 제어하여 특정 서비스의 과도한 CPU 점유를 방지 |
CPU 경쟁 방지 및 성능 보장 |
|||
주요 옵션 |
옵션 | 설명 | |||
| --cpus | 컨테이너가 사용할 수 있는 CPU core 수 지정 | ||||
| 예시 | 설명 | ||||
| ex) --cpus="1.5" | 컨테이너가 최대 1.5개의 CPU 파워 사용 가능 |
||||
| --cpuset-cpus | 특정 CPU 코어에만 컨테이너 고정 | ||||
| 컨테이너가 사용할 수 있는 CPU나 코어 할당 | |||||
| CPU Index는 0부터 시작 | |||||
| 예시 | 설명 | ||||
| ex) --cpuset-cpus="0-2" | CPU 0, 1, 2번 코어만 사용 가능하도록 제한 |
||||
| --cpu-share | CPU 비중 가중치 설정 (기본값 1024) | ||||
| 예시 | 설명 | ||||
| ex) --cpu-share=2048 | 기본값보다 2배 많은 CPU 자원 할당 |
||||
| 운용 포인트 | 동일 호스트에서 여러 컨테이너가 공존할 때 CPU 점유율 균형 유지 | CPUU 모니터링과 병행 권장 |
|||
| 고성능 프로세스는 전용 코어 배정 | |||||
Ⅱ -Ⅱ. 명령어 사용 예시
| 명령어 사용 예시 |
예시 | 설명 |
| docker container run -d -cpus=".5" ubuntu | 0.5개의 CPU 사용 가능 | |
| docker container run -d -cpu-share 2048 ubuntu | 다른 컨테이너에 비해 2배의 CPU 자원 할당 (다른 컨테이너에 대한 가중치) |
|
| docker container run -d -cpu-share 512 ubuntu | 다른 컨테이너에 비해 0.5배의 CPU 자원 할당 | |
| docker container run -d -cpuset-cpus 0-2 ubuntu | CPU 중 0번부터 2번 CPU 할당 |
Ⅲ. BLOCK I / O (DISK I / O) 제한
Ⅲ - Ⅰ. BLOCK I / O 리소스 제한 옵션
| BLOCK I/O 리소스 제한 |
구분 | 설명 | 비고 | |
| 개념 | 컨테이너별 디스크 입출력 속도 (IOPS, BPS)를 제한하여 특정 컨테이너의 과도한 디스크 사용 방지 |
I / O 병목 방지 | ||
| 주요 옵션 | 옵션 | 설명 | ||
| --blkio-weight | 컨테이너별 I / O 우선 순위 설정 | |||
| Block I / O의 Quota 설정 | ||||
| 100 ~ 1000까지 선택 가능 | ||||
| 기본값은 500 | ||||
| --device-read-bps or --device-write-bps |
컨테이너의 읽기 / 쓰기 속도를 초단위로 제한 | |||
| 단위 : KB, MB, GB | ||||
| --device-read-iops or --device-write-iops |
컨테이너의 읽기 / 쓰기 속도의 Quota 설정 | |||
| 초당 쿼터를 제한해서 I / O 발생시킴 | ||||
| 0 이상의 정수로 표시 | ||||
| 초당 데이터 전송량은 'IOPS x 블록단위 (단위 데이터 용량)' 계산 | ||||
| 운용 포인트 | DB, 로그 수집 등 I / O 집약적 워크로드에 유용 | I / O 모니터링 툴과 병행 필요 | ||
| SSD / HDD 병행 환경에서 병목 최소화 | ||||
| 서비스별 QoS 제어 가능 | ||||
Ⅲ - Ⅱ. 명령어 사용 예시
| 명령어 사용 예시 |
예시 | 설명 |
| docker container run -it --rm -blkio-weight 100 ubuntu /bin/bash | 블록 I / O를 1 / 5 (100 / 500)로 설정 (다른 컨테이너에 비해 1 / 5 정도의 BLOCK I / O 발생) |
|
| docker container run -it --rm -device-write-bps /dev/sda:1mb ubuntu /bin/bash | 블록 write I / O를 초당 1MB 속도로 제한 |
|
| docker container run -it --rm -device-write-bps /dev/sda:10mb ubuntu /bin/bash | 블록 write I / O를 초당 10MB 속도로 제한 |
|
| docker container run -it --rm -device-write-iops /dev/sda:10 ubuntu /bin/bash | 초당 데이터 전송량 제한 ( 10 x 블록 크기) |
Ⅳ. Docker 리소스 모니터링
Ⅳ - Ⅰ. 명령어 형식
- docker monitoring commands
Ⅳ - Ⅱ. 명령어 사용 예시
● docker container stats [옵션] 컨테이너_이름
- 실행 중인 컨테이너의 런타임 통계 확인
● docker events –f container=<NAME>
- Docker 호스트의 실시간 event 정보를 수집해서 출력
Ⅴ. Docker 리소스 제한 및 모니터링
- yum -y install epel-release 명령을 통해 epel-release 패키지 설치
- yum -y install htop 명령을 통해 htop 패키지 설치

lscpu | head 명령을 통해 CPU 아키텍처 및 정보 확인
lsmen 명령을 통해 시스템 메모리 블록 관련 정보 확인

free 명령을 통해 시스템의 메모리 사용 현황 확인
df -h 명령을 통해 파일 시스템 디스크 사용량을 용량 단위로 보기 쉽게 출력한 뒤 확인
lsblk 명령을 통해 블록 장치 구조와 마운트 위치를 트리 구조로 확인

mkdir –p build 명령을 통해 build 디렉터리 생성
(-p 옵션을 통해 상위 디렉터리가 없을 경우, 함께 생성)
cd build/ 명령을 통해 build 디렉터리로 이동
cat << EOF > Dockerfile 명령을 통해 Dockerfile 파일 생성하고, 내용 입력
[Dockerfile 파일의 내용]
FROM debian 명령을 통해 Dockerfile 파일의 베이스 이미지를 Debian으로 지정
RUN apt-get update; apt-get –y install stress 명령을 통해 컨테이너 내에서 stress 패키지 설치
CMD [“/bin/sh”, “-c”, “stress –c 2”] 명령을 통해 컨테이너가 실행될 때
CPU 2개 코어를 사용하여 stress 명령어 실행하도록 저장
EOF 명령을 통해 Dockerfile 파일에 내용 저장하는 것 종료
ls 명령을 통해 현재 디렉터리인 build 디렉터리에 Dockerfile 파일이 잘 생성되었는지 확인
# stress 이미지 빌드
docker image build –t stress . 명령을 통해 현재 디렉터리의 Dockerfile 파일을 기반으로 Stress 이미지 빌드

docker image ls 명령을 통해 Stress 이미지가 잘 생성되었는지 확인
docker image inspect stress:latest 명령을 통해 Stress 이미지의 상세 정보 확인
Ⅴ - Ⅰ. stress 명령어
| stress 명령어 |
구분 | 설명 | ||
| 개념 | 시스템 또는 Docker 컨테이너의 CPU, 메모리, I / O 사용량을 인위적으로 높여 부하 테스트를 수행하는 도구 | |||
| 주로 리소스 제한 설정이 올바르게 적용되었는지 확인하거나 시스템의 안정성 테스트 시 사용됨 | ||||
| 주요 옵션 | 옵션 | 설명 | 비고 | |
| --vm | 실행할 메모리 할당 프로세스 (vm worker)의 개수 지정 | 프로세스 개수 = 메모리 부하 정도 | ||
| --vm-bytes | 각 프로세스가 사용할 메모리 크기 지정 | 단위 : K, M, G 가능 | ||
| -t [시간] | 스트레스 테스트 실행 시간 지정 | s (초), m (분), h (시간) 단위 | ||
| --cpu | CPU 코어를 몇 개 사용할지 지정 | CPU 부하 테스트용 | ||
| --io | I / O 작업 부하 발생 (디스크 읽기 / 쓰기 시뮬레이션) | 디스크 성능 테스트 | ||
| --timeout | 지정 시간 이후 자동 종료 ( = -t와 동일 기능) | 자동 종료 설정 | ||
| --verbose | 실행 중 상세 로그 출력 | 동작 과정 확인 가능 | ||

# 컨테이너 생성 및 실행
time 명령을 통해 뒤에 실행하는 명령어가 완료되는데 걸리는
실제(real), 사용자(user), 시스템(sys) 시간 측정해서 보여주도록 설정
docker container run stress 명령을 통해 Stress 이미지 사용하여 컨테이너 생성 및 실행
--rm 옵션을 통해 실행이 종료되면 자동으로 컨테이너가 삭제되도록 설정
-m 100m 옵션을 통해 컨테이너에 할당 가능한 메모리 상한을 100MB로 제한
--memory-swap 100m 옵션을 통해 컨테이너 swap 영역 포함 전체 메모리 사용 제한을 100MB로 설정
=> 메모리 + swap의 최대 합 = 100MB
stress 옵션을 통해 CPU, 메모리 등에 부하를 주는 테스트 유틸리티,
컨테이너 내에서 실행할 프로그램 이름과 옵션이 stress라는 것 확인
--vm 1 옵션을 통해 1개의 가상 메모리 작업자 (Worker) 생성
--vm-bytes 90m 옵션을 통해 각 Worker가 90MB 메모리 블록 할당하도록 지정
-t 5s 옵션을 통해 5초 동안 부하를 지속적으로 발생시킴

# 컨테이너 생성 및 실행
time 명령을 통해 뒤에 실행하는 명령어가 완료되는데 걸리는
실제(real), 사용자(user), 시스템(sys) 시간 측정해서 보여주도록 설정
docker container run stress 명령을 통해 Stress 이미지 사용하여 컨테이너 생성 및 실행
--rm 옵션을 통해 실행이 종료되면 자동으로 컨테이너가 삭제되도록 설정
-m 100m 옵션을 통해 컨테이너에 할당 가능한 메모리 상한을 100MB로 제한
stress 옵션을 통해 CPU, 메모리 등에 부하를 주는 테스트 유틸리티,
컨테이너 내에서 실행할 프로그램 이름과 옵션이 stress라는 것 확인
--vm 1 옵션을 통해 1개의 가상 메모리 작업자 (Worker) 생성
--vm-bytes 150m 옵션을 통해 각 Worker가 150MB 메모리 블록 할당하도록 지정
-t 5s 옵션을 통해 5초 동안 부하를 지속적으로 발생시킴
# 컨테이너 생성 및 실행
time 명령을 통해 뒤에 실행하는 명령어가 완료되는데 걸리는
실제(real), 사용자(user), 시스템(sys) 시간 측정해서 보여주도록 설정
docker container run stress 명령을 통해 Stress 이미지 사용하여 컨테이너 생성 및 실행
--rm 옵션을 통해 실행이 종료되면 자동으로 컨테이너가 삭제되도록 설정
-m 100m 옵션을 통해 컨테이너에 할당 가능한 메모리 상한을 100MB로 제한
stress 옵션을 통해 CPU, 메모리 등에 부하를 주는 테스트 유틸리티,
컨테이너 내에서 실행할 프로그램 이름과 옵션이 stress라는 것 확인
--vm 1 옵션을 통해 1개의 가상 메모리 작업자 (Worker) 생성
--vm-bytes 250m 옵션을 통해 각 Worker가 250MB 메모리 블록 할당하도록 지정
-t 5s 옵션을 통해 5초 동안 부하를 지속적으로 발생시킴

lscpu | head 명령을 통해 CPU 아키텍처, 코어 수, 모델명 등 CPU 관련 정보 처음 10줄만 출력하여 확인

# c1 컨테이너 생성 및 실행
docker container run --name c1 stress 명령을 통해 Stress 이미지 사용하여 c1 컨테이너 생성 및 실행
-d 옵션으로 인해 c1 컨테이너를 백그라운드에서 구동
--cpuset-cpus 1 옵션을 통해 컨테이너가 사용할 CPU 코어를 1번 코어로 제한
stress —cpu 1 옵션을 통해 컨테이너 내부에서 stress CPU 부하 테스트 유틸리티 사용하여 CPU 1개에 부하 부여
htop 명령을 통해 시스템의 실시간 프로세스와 리소스 사용 현황 확인
docker container ls –a 명령을 통해 컨테이너가 잘 생성되었는지 확인
# c1 컨테이너 삭제
docker containe rm –f 6f 명령을 통해 c1 컨테이너 삭제
docker container ls –a 명령을 통해 컨테이너가 잘 삭제되었는지 확인

# c1 컨테이너 생성 및 실행
docker container run --name c1 sterss 명령을 통해 Stress 이미지를 사용하여 c1 컨테이너 생성 및 실행
-d 옵션을 통해 c1 컨테이너를 백그라운드로 구동
--cpuset-cpus 1 옵션을 통해 컨테이너가 사용할 CPU 코어를 1번 코어로 제한
stress —cpu 1 옵션을 통해 컨테이너 내부에서 stress CPU 부하 테스트 유틸리티 사용하여 CPU 1개에 부하 부여
htop 명령을 통해 시스템의 실시간 프로세스와 리소스 사용 현황 확인

# c1 컨테이너 생성 및 실행
docker container run --name c1 stress 명령을 통해 Stress 이미지 사용하여 c1 컨테이너 생성 및 실행
-d 옵션을 통해 c1 컨테이너를 백그라운드로 구동
--cpuset-cpus 0-2 옵션을 통해 CPU 코어 0부터 2까지 3개의 CPU 코어를 컨테이너에 할당
stress —cpu 2 옵션을 통해 CPU 2개에 부하를 주는 테스트 진행
htop 명령을 통해 stress 프로세스가 CPU를 부하시키는 것 확인
docker container ls –a 명령을 통해 현재 실행 중인 c1 컨테이너 확인
# c1 컨테이너 삭제
docker container rm –f 64 명령을 통해 c1 컨테이너 강제로 삭제
docker container ls –a 명령을 통해 컨테이너가 잘 삭제되었는지 확인

# c1 컨테이너 생성 및 실행
docker container run --name c1 stress 명령을 통해 Stress 이미지 사용하여 c1 컨테이너 생성 및 실행
-d 옵션을 통해 c1 컨테이너를 백그라운드로 구동
--cpu-shares 2048 옵션을 통해 CPU 공유 가중치를
기본값보다 2배 높은 2048로 설정해 리소스 할당 우선순위 높임
# c2 컨테이너 생성 및 실행
docker container run --name c2 stress 명령을 통해 Stress 이미지 사용하여 c2 컨테이너 생성 및 실행
-d 옵션을 통해 c2 컨테이너를 백그라운드로 구동
--cpu-shares 1024 옵션을 통해 CPU 공유 가중치를 기본값인 1024로 설정
# c3 컨테이너 생성 및 실행
docker container run --name c3 stress 명령을 통해 Stress 이미지 사용하여 c3 컨테이너 생성 및 실행
-d 옵션을 통해 c3 컨테이너를 백그라운드로 구동
--cpu-shares 512 옵션을 통해 CPU 공유 가중치를 기본값의 절반인 512로 낮게 설정
# c4 컨테이너 생성 및 실행
docker container run --name c4 stress 명령을 통해 Stress 이미지 사용하여 c4 컨테이너 생성 및 실행
-d 옵션을 통해 c4 컨테이너를 백그라운드로 구동
--cpu-shares 512 옵션을 통해 CPU 공유 가중치를 기본값의 절반인 512로 낮게 설정
docker container ls -a 명령으로 컨테이너가 잘 생성되었는지 확인

docker container stats 명령을 통해 실행 중인 도커 컨테이너들의 리소스 사용 현황 실시간으로 확인

# c1, c2, c3, c4 컨테이너 삭제
docker container rm -f 08 f6 26 58 명령을 통해 c1, c2, c3, c4 컨테이너 삭제
docker container ls -a 명령을 통해 컨테이너가 잘 삭제되었는지 확인

# c1 컨테이너 생성 및 실행
docker container run --name c1 stress 명령을 통해 Stress 이미지 사용하여 c1 컨테이너 생성 및 실행
-d 옵션을 통해 c1 컨테이너를 백그라운드로 구동
--cpu-shares 200 옵션을 통해 CPU 공유 가중치를 기본값보다 2배 높은 200으로 설정해 리소스 할당 우선순위 높임
# c2 컨테이너 생성 및 실행
docker container run --name c2 stress 명령을 통해 Stress 이미지 사용하여 c2 컨테이너 생성 및 실행
-d 옵션을 통해 c2 컨테이너를 백그라운드로 구동
--cpu-shares 100 옵션을 통해 CPU 공유 가중치를 기본값인 100으로 설정
# c3 컨테이너 생성 및 실행
docker container run --name c3 stress 명령을 통해 Stress 이미지 사용하여 c3 컨테이너 생성 및 실행
-d 옵션을 통해 c3 컨테이너를 백그라운드로 구동
--cpu-shares 50 옵션을 통해 CPU 공유 가중치를 기본값의 절반인 50으로 낮게 설정
# c4 컨테이너 생성 및 실행
docker container run --name c4 stress 명령을 통해 Stress 이미지 사용하여 c4 컨테이너 생성 및 실행
-d 옵션을 통해 c4 컨테이너를 백그라운드로 구동
--cpu-shares 50 옵션을 통해 CPU 공유 가중치를 기본값의 절반인 50으로 낮게 설정
docker container ls -a 명령을 통해 컨테이너가 잘 생성되었는지 확인

docker container stats 명령을 통해 실행 중인 컨테이너들의 리소스 사용량을 실시간으로 확인
Ⅴ - Ⅱ. 컨테이너 리소스 제한 - Block I/O 제한

lsblk 명령을 통해 본체 디스크 이름 확인 -> sda

# 컨테이너 생성 및 실행
docker container run ubuntu 명령을 통해 Ubuntu 이미지 사용하여 컨테이너 생성 및 실행
--it /bin/bash 옵션을 통해 컨테이너 내부에 직접 접근할 수 있는 bash 쉘 실행하도록 설정
--rm 옵션을 통해 실행 끝나면 컨테이너가 자동으로 삭제되도록 설정
--device-write-bps=/dev/sda:1mb 옵션을 통해 컨테이너 내부 /dev/sda 장치에 대한 쓰기 속도를 초당 1mb로 제한
dd 명령을 통해 파일 복사 및 변환
if=/dev/zero 옵션을 통해 0으로 채워진 무한대의 데이터를 생성하는 가상 장치 설정
of=file1 옵션을 통해 생성된 데이터를 file1이라는 이름의 파일에 저장
bs=1M 옵션을 통해 한 번에 1MB씩 데이터 처리
count=10 옵션을 통해 10번 반복하여 총 10MB의 파일 생성
oflag=direct 옵션을 통해 캐시를 사용하지 않고 디스크에 직접 쓰도록 설정
cat file1과 file file1 명령을 통해 생성된 파일 확인
exit 명령을 통해 컨테이너 내부 bash 쉘에서 나옴

# 컨테이너 생성 및 실행
docker container run ubuntu 명령을 통해 Ubuntu 이미지 사용하여 컨테이너 생성 및 실행
--it /bin/bash 옵션을 통해 컨테이너 내부에 직접 접근할 수 있는 bash 쉘 실행하도록 설정
--rm 옵션을 통해 실행 끝나면 컨테이너가 자동으로 삭제되도록 설정
--device-write-bps=/dev/sda:100mb 옵션을 통해
컨테이너 내부 /dev/sda 장치에 대한 쓰기 속도를 초당 100mb로 제한
dd 명령을 통해 파일 복사 및 변환
if=/dev/zero 옵션을 통해 0으로 채워진 무한대의 데이터를 생성하는 가상 장치 설정
of=file1 옵션을 통해 생성된 데이터를 file1이라는 이름의 파일에 저장
bs=1M 옵션을 통해 한 번에 1MB씩 데이터 처리
count=10 옵션을 통해 10번 반복하여 총 10MB의 파일 생성
oflag=direct 옵션을 통해 캐시를 사용하지 않고 디스크에 직접 쓰도록 설정
exit 명령을 통해 컨테이너 내부 bash 쉘에서 나옴
# 컨테이너 생성 및 실행
docker container run ubuntu 명령을 통해 Ubuntu 이미지 사용하여 컨테이너 생성 및 실행
--it /bin/bash 옵션을 통해 컨테이너 내부에 직접 접근할 수 있는 bash 쉘 실행하도록 설정
--rm 옵션을 통해 실행 끝나면 컨테이너가 자동으로 삭제되도록 설정
--device-write-bps=/dev/sda:1000mb 옵션을 통해
컨테이너 내부 /dev/sda 장치에 대한 쓰기 속도를 초당 1000mb로 제한
dd 명령을 통해 파일 복사 및 변환
if=/dev/zero 옵션을 통해 0으로 채워진 무한대의 데이터를 생성하는 가상 장치 설정
of=file1 옵션을 통해 생성된 데이터를 file1이라는 이름의 파일에 저장
bs=1M 옵션을 통해 한 번에 1MB씩 데이터 처리
count=10 옵션을 통해 10번 반복하여 총 10MB의 파일 생성
oflag=direct 옵션을 통해 캐시를 사용하지 않고 디스크에 직접 쓰도록 설정
exit 명령을 통해 컨테이너 내부 bash 쉘에서 나옴
# 컨테이너 생성 및 실행
docker container run ubuntu 명령을 통해 Ubuntu 이미지 사용하여 컨테이너 생성 및 실행
--it /bin/bash 옵션을 통해 컨테이너 내부에 직접 접근할 수 있는 bash 쉘 실행하도록 설정
--rm 옵션을 통해 실행 끝나면 컨테이너가 자동으로 삭제되도록 설정
--device-write-bps=/dev/sda:200mb 옵션을 통해
컨테이너 내부 /dev/sda 장치에 대한 쓰기 속도를 초당 200mb로 제한
dd 명령을 통해 파일 복사 및 변환
if=/dev/zero 옵션을 통해 0으로 채워진 무한대의 데이터를 생성하는 가상 장치 설정
of=file1 옵션을 통해 생성된 데이터를 file1이라는 이름의 파일에 저장
bs=1M 옵션을 통해 한 번에 1MB씩 데이터 처리
count=10 옵션을 통해 10번 반복하여 총 10MB의 파일 생성
oflag=direct 옵션을 통해 캐시를 사용하지 않고 디스크에 직접 쓰도록 설정
exit 명령을 통해 컨테이너 내부 bash 쉘에서 나옴

# 컨테이너 생성 및 실행
docker container run ubuntu 명령을 통해 Ubuntu 이미지 사용하여 컨테이너 생성 및 실행
--it /bin/bash 옵션을 통해 컨테이너 내부에 직접 접근할 수 있는 bash 쉘 실행하도록 설정
--rm 옵션을 통해 실행 끝나면 컨테이너가 자동으로 삭제되도록 설정
--device-write-bps=/dev/sda:100mb 옵션을 통해
컨테이너 내부 /dev/sda 장치에 대한 쓰기 속도를 초당 100mb로 제한
dd 명령을 통해 파일 복사 및 변환
if=/dev/zero 옵션을 통해 0으로 채워진 무한대의 데이터를 생성하는 가상 장치 설정
of=file1 옵션을 통해 생성된 데이터를 file1이라는 이름의 파일에 저장
bs=10M 옵션을 통해 한 번에 10MB씩 데이터 처리
count=10 옵션을 통해 10번 반복하여 총 100MB의 파일 생성
oflag=direct 옵션을 통해 캐시를 사용하지 않고 디스크에 직접 쓰도록 설정
exit 명령을 통해 컨테이너 내부 bash 쉘에서 나옴
# 컨테이너 생성 및 실행
docker container run ubuntu 명령을 통해 Ubuntu 이미지 사용하여 컨테이너 생성 및 실행
--it /bin/bash 옵션을 통해 컨테이너 내부에 직접 접근할 수 있는 bash 쉘 실행하도록 설정
--rm 옵션을 통해 실행 끝나면 컨테이너가 자동으로 삭제되도록 설정
--device-write-bps=/dev/sda:1000mb 옵션을 통해
컨테이너 내부 /dev/sda 장치에 대한 쓰기 속도를 초당 1000mb로 제한
dd 명령을 통해 파일 복사 및 변환
if=/dev/zero 옵션을 통해 0으로 채워진 무한대의 데이터를 생성하는 가상 장치 설정
of=file1 옵션을 통해 생성된 데이터를 file1이라는 이름의 파일에 저장
bs=10M 옵션을 통해 한 번에 10MB씩 데이터 처리
count=10 옵션을 통해 10번 반복하여 총 100MB의 파일 생성
oflag=direct 옵션을 통해 캐시를 사용하지 않고 디스크에 직접 쓰도록 설정
exit 명령을 통해 컨테이너 내부 bash 쉘에서 나옴

# 컨테이너 생성 및 실행
docker container run ubuntu 명령을 통해 Ubuntu 이미지 사용하여 컨테이너 생성 및 실행
--it /bin/bash 옵션을 통해 컨테이너 내부에 직접 접근할 수 있는 bash 쉘 실행하도록 설정
--rm 옵션을 통해 실행 끝나면 컨테이너가 자동으로 삭제되도록 설정
--device-write-iops=/dev/sda:10 옵션을 통해
컨테이너 내부 /dev/sda 장치에 대한 초당 I/O 쓰기 작업 수를 10으로 제한
dd 명령을 통해 파일 복사 및 변환
if=/dev/zero 옵션을 통해 0으로 채워진 무한대의 데이터를 생성하는 가상 장치 설정
of=file1 옵션을 통해 생성된 데이터를 file1이라는 이름의 파일에 저장
bs=1M 옵션을 통해 한 번에 1MB씩 데이터 처리
count=10 옵션을 통해 10번 반복하여 총 10MB의 파일 생성
oflag=direct 옵션을 통해 캐시를 사용하지 않고 디스크에 직접 쓰도록 설정
exit 명령을 통해 컨테이너 내부 bash 쉘에서 나옴
# 컨테이너 생성 및 실행
docker container run ubuntu 명령을 통해 Ubuntu 이미지 사용하여 컨테이너 생성 및 실행
--it /bin/bash 옵션을 통해 컨테이너 내부에 직접 접근할 수 있는 bash 쉘 실행하도록 설정
--rm 옵션을 통해 실행 끝나면 컨테이너가 자동으로 삭제되도록 설정
--device-write-iops=/dev/sda:100 옵션을 통해
컨테이너 내부 /dev/sda 장치에 대한를 초당 I/O 쓰기 작업 수를 100으로 제한
dd 명령을 통해 파일 복사 및 변환
if=/dev/zero 옵션을 통해 0으로 채워진 무한대의 데이터를 생성하는 가상 장치 설정
of=file1 옵션을 통해 생성된 데이터를 file1이라는 이름의 파일에 저장
bs=1M 옵션을 통해 한 번에 1MB씩 데이터 처리
count=10 옵션을 통해 10번 반복하여 총 10MB의 파일 생성
oflag=direct 옵션을 통해 캐시를 사용하지 않고 디스크에 직접 쓰도록 설정
exit 명령을 통해 컨테이너 내부 bash 쉘에서 나옴
Ⅴ - Ⅲ. cAdvisor 설치 및 실행

# myweb 컨테이너 생성 및 실행
docker container run --name myweb ubuntu 명령을 통해 Ubuntu 이미지 사용하여 myweb 컨테이너 생성 및 실행
--it /bin/bash 옵션을 통해 컨테이너 내부에 직접 접근할 수 있는 bash 쉘 실행하도록 설정
-d 옵션을 통해 myweb 컨테이너를 백그라운드로 구동
--rm 옵션을 통해 실행 끝나면 컨테이너가 자동으로 삭제되도록 설정
-m 500m 옵션을 통해 컨테이너가 사용할 메모리 500MB로 제한
--cpuset-cpus 0-1 옵션을 통해 컨테이너가 사용할 CPU 코어를 0번과 1번으로 제한
cAdvisor 컨테이너 설치 및 실행. docker container ls –a 명령 통해 잘 설치되었는지 확인
'Docker' 카테고리의 다른 글
| Docker 파일 이미지 빌드 (0) | 2026.06.12 |
|---|---|
| Docker 이미지 생성 (0) | 2026.06.12 |
| Docker 컨테이너 운용 (0) | 2026.06.12 |
| Docker 컨테이너 네트워크 관리 & Docker 네트워크 관리 (0) | 2026.06.12 |
| Docker 컨테이너 관리 & Docker 볼륨 관리 (0) | 2026.06.12 |