콘텐츠로 이동

운영관리 & 도커 컴포즈

도커 스터디 - 처음부터 제대로 배우는 도커/쿠버네티스 컨테이너 개발과 운영 ch. 2

created: 2026.1.27


운영 관리 커맨드

prune - 파기

  • 불필요한 이미지나 컨테이너 제거
docker container prune [options]
  • 실행 중이 아닌 모든 컨테이너 제거
docker image prune [options]
  • --all: 모든 이미지 한번에 삭제
docker system prune [options]
  • 사용 중이 아닌 컨테이너와 이미지, 볼륨, 네트워크 등의 모든 리소스 제거

stats - 사용 상태 가져오기

docker container stats [options] [컨테이너 id...]

도커 컴포즈

  • yaml 형식의 설정 파일로 여러 컨테이너 실행을 한번에 관리

단일 컨테이너 실행

version: "3.9"

services:
  echo:
    image: ghcr.io/jpubdocker/echo:v0.1.0
    ports:
      - 9000:8080
- services: echo: 컨테이너 이름 정의 - 하위에는 실행하는 컨테이너 정의 - image: 컨테이너 이미지 - ports: 포스 포워딩 지정

docker compose up -d # compose.yaml 실행
docker compose down # compose.yaml에 정의된 컨테이너 모두 중지, 제거
  • image 대신 build로 Dockerfile이 존재하는 디렉터리의 상대 경로를 지정할 수 있음
  • --build: 옵션을 추가하면 빌드 과정을 반드시 수행하도록 지정

여러 컨테이너 실행

version: "3.9"

services:
  echo:
    image: ghcr.io/jpubdocker/echo:v0.1.0

  nginx:
    # nginx 디렉터리를 콘텍스트로 만들고 이미지 빌드하기
    build: ./nginx
    # 컨테이너 간 통신을 위해 echo 컨테이너 의존성 추가
    depends_on:
      - echo
    # 호스트 9000 포트를 nginx의 80 포트로 포워딩
    ports:
      - "9000:80"
FROM nginx:1.25.1

COPY ./etc/nginx/conf.d/* /etc/nginx/conf.d/

  • nginx 폴더 안에 conf 파일들을 미리 작성하고 컨테이너 안으로 복사