
📖 진도: 2.2, 2.3 / 20 ~ 109p
docker run -it ubuntu:24.04 등 기본 커맨드docker logs <container_id> 등 로깅 명령어docker create -it ubuntu:24.04cmd + P, Qdocker attach <container_id>exec -it <container_id> bash 썼었는데.. 이게 있었네..Ctrl + C 로 컨테이너를 종료하면 메인 프로세스가 종료될 수 있음.exec 가 더 안전하다.run 과 attach 커맨드의 차이점
볼륨만 전담하는 컨테이너 사용방식이 존재한다.
그런데 왜? docker에서 관리하는 단순 볼륨 사용과 차이점은?
사실 볼륨 컨테이너는 레거시 패턴이다.
Docker 1.9 이후 named volumes 도입으로 대부분 불필요해졌다.
대체 사용법
# 이전 방식 (볼륨 컨테이너)
docker create -v /data --name dbdata busybox
docker run --volumes-from dbdata postgres
# 현재 권장 방식
docker volume create dbdata
docker run -v dbdata:/var/lib/postgresql/data postgres
veth0을 통해 컨테이너와 브리지 네트워크를 연결한다고 하였으나, MacOS에서는 이보다 좀 더 복잡한 과정을 거친다.macOS 호스트
↓
bridge102 (192.168.215.0/24) ← Docker VM이 사용하는 브릿지
↓
vmenet2 ← VM과 통신하는 가상 네트워크 인터페이스
↓
Docker Desktop VM (Linux)
↓
docker0 bridge
↓
veth pairs (여기에 실제로 존재!)
↓
컨테이너 (192.168.215.2)subnet, gateway, ip-range 등 세부 설정 가능--net-alias 옵션haproxy, traefik 등 외부 네트워크 프로그램을 사용하는 것이 좋다.docker run -it ubuntu:24.04
--log-opt max-size=10m # 로그 파일 최대 크기
--log-opt max-file=3 # 로그 파일 최대 개수
--log-opt compress=true # 로그 파일 압축
docker run -d
--memory=1g # 메모리 제한
--memory-swap=2g # 메모리 + 스왑 제한
--cpu-shares=1024 # 상대적 CPU 가중치, 1024이 최대
--cpuset-cpus=0,1 # CPU 셋, 0번과 1번 코어만 사용
--cpu-period=100000 # CPU 주기
--cpu-quota=50000 # CPU 할당량, 주기 중 50% 사용
--cpus=2 # CPU 제한, 2개 코어 사용
--cpus 옵션이 간단하기는 하지만, --cpuset-cpus 옵션이 더 유리하다.docker save 명령어로 이미지를 하나의 파일로 내보낼 수 있다.docker load 명령어로 파일을 이미지로 불러올 수 있다.docker export, docker import 명령어로 컨테이너 <-> 이미지로 변환할 수 있다.docker save 명령어로, 사내에서 테스트에 사용할 골든 이미지 업로드 가능한지 적용해보기