ToolStack
EN

Docker 명령어 모음

이미지·컨테이너·compose 관리 핵심 명령어 정리

데이터는 서버로 전송되지 않습니다 — 모든 처리는 브라우저 안에서만 서버 전송 0건

01

이미지

  • docker pull nginx:latest

    이미지를 다운로드합니다

  • docker images

    로컬 이미지 목록을 확인합니다

  • docker build -t myapp:1.0 .

    현재 디렉터리의 Dockerfile로 이미지를 빌드합니다

  • docker rmi 이미지명

    이미지를 삭제합니다

  • docker image prune -a

    사용하지 않는 이미지를 모두 정리합니다 ※ 주의

  • docker tag myapp:1.0 user/myapp:1.0

    이미지에 새 태그(레지스트리 경로)를 답니다

  • docker push user/myapp:1.0

    이미지를 레지스트리에 올립니다

02

컨테이너 실행

  • docker run -d -p 8080:80 --name web nginx

    백그라운드로 실행하며 호스트 8080 → 컨테이너 80 포트를 연결합니다

  • docker run -it --rm ubuntu bash

    임시 컨테이너에서 셸을 열고 종료 시 자동 삭제합니다

  • docker run -e KEY=value 이미지

    환경 변수를 주입해 실행합니다

  • docker run -v $(pwd):/app 이미지

    현재 디렉터리를 컨테이너 /app에 마운트합니다

  • docker run --restart unless-stopped 이미지

    도커 재시작 시 컨테이너를 자동으로 다시 띄웁니다

03

컨테이너 관리

  • docker ps

    실행 중인 컨테이너 목록을 봅니다 (-a 는 중지 포함 전체)

  • docker stop web

    컨테이너를 정상 종료합니다 (start/restart)

  • docker rm web

    중지된 컨테이너를 삭제합니다 (-f 는 실행 중도 강제 삭제)

  • docker container prune

    중지된 컨테이너를 일괄 정리합니다

  • docker rename old new

    컨테이너 이름을 변경합니다

04

디버깅

  • docker logs -f --tail 100 web

    최근 100줄부터 로그를 실시간으로 봅니다

  • docker exec -it web bash

    실행 중인 컨테이너 안에서 셸을 엽니다 (bash 없으면 sh)

  • docker inspect web

    컨테이너의 상세 설정(IP, 마운트 등)을 JSON으로 봅니다

  • docker stats

    컨테이너별 CPU·메모리 사용량을 실시간으로 봅니다

  • docker cp web:/var/log/nginx/access.log ./

    컨테이너의 파일을 호스트로 복사합니다

  • docker port web

    컨테이너의 포트 매핑을 확인합니다

05

볼륨·네트워크

  • docker volume ls

    볼륨 목록을 확인합니다 (create/rm/inspect)

  • docker volume prune

    사용하지 않는 볼륨을 정리합니다 ※ 데이터 삭제 주의

  • docker network ls

    네트워크 목록을 확인합니다

  • docker network create mynet

    사용자 정의 네트워크를 만듭니다 (컨테이너 이름으로 통신 가능)

  • docker network connect mynet web

    실행 중인 컨테이너를 네트워크에 연결합니다

06

Docker Compose

  • docker compose up -d

    compose.yaml의 서비스 전체를 백그라운드로 띄웁니다

  • docker compose down

    서비스를 중지하고 컨테이너·네트워크를 제거합니다 (-v 는 볼륨까지 ※ 주의)

  • docker compose ps

    서비스 상태를 확인합니다

  • docker compose logs -f 서비스명

    특정 서비스의 로그를 실시간으로 봅니다

  • docker compose build --no-cache

    캐시 없이 이미지를 다시 빌드합니다

  • docker compose exec 서비스명 bash

    서비스 컨테이너 안에서 셸을 엽니다

  • docker compose restart 서비스명

    특정 서비스만 재시작합니다

07

시스템 정리

  • docker system df

    이미지·컨테이너·볼륨이 차지하는 용량을 확인합니다

  • docker system prune

    중지 컨테이너·미사용 네트워크·댕글링 이미지를 정리합니다

  • docker system prune -a --volumes

    미사용 리소스를 전부 정리합니다 ※ 복구 불가, 신중히 실행

  • docker builder prune

    빌드 캐시를 정리합니다

Docker 명령어 핵심 정리

도커 명령은 이미지(설계도)와 컨테이너(실행 인스턴스)를 구분하면 절반은 이해한 것입니다. 이 페이지는 이미지 → 실행 → 관리 → 디버깅 → 볼륨·네트워크 → Compose → 정리 순서로, 단일 컨테이너 운영부터 다중 서비스 구성까지 필요한 명령을 정리했습니다.

문제가 생겼을 때는 docker ps -a 로 상태를 보고, docker logs -f 로 로그를 따라가고, docker exec -it 로 내부에 들어가 확인하는 3단계가 기본 디버깅 루틴입니다. 운영 환경에서는 --restart unless-stopped 와 Compose 기반 관리를 권장합니다.

※ prune 계열과 compose down -v 는 데이터를 삭제할 수 있습니다. 볼륨에 중요한 데이터가 있는지 먼저 확인하세요.

자주 묻는 질문

docker-compose와 docker compose는 뭐가 다른가요?
하이픈이 있는 docker-compose는 구버전 독립 실행 파일이고, 현재는 도커에 내장된 docker compose(공백) 사용이 표준입니다. 명령 체계는 거의 동일합니다.
디스크 용량이 도커 때문에 가득 찼어요.
docker system df 로 어디가 큰지 확인한 뒤, docker system prune 으로 중지 컨테이너·댕글링 이미지를 정리하세요. -a --volumes 옵션은 사용하지 않는 모든 이미지·볼륨까지 지우므로 필요한 데이터가 없는지 먼저 확인해야 합니다.
컨테이너 안에 들어가서 확인하고 싶어요.
docker exec -it 컨테이너명 bash 를 사용하세요. 알파인 기반 등 bash가 없는 이미지는 sh 로 접속하면 됩니다.

관련 툴