Docker의 기본 구조를 이해했다면, 이제 실전에서 바로 쓸 수 있는 핵심 명령어들을 익히자.
Docker 명령어는 다음 네 가지 범주로 나눌 수 있다.
| 분류 | 설명 |
|---|---|
| Image Management | Docker 이미지 관리 명령어 |
| Container Management | 컨테이너 생성, 삭제, 실행 제어 |
| Container Interaction | 실행 중인 컨테이너 내부 조작 |
| Debugging Commands | 문제 해결 및 상태 확인 |
# Docker 버전 확인
docker --version
# 전체 시스템 정보 조회 (컨테이너, 이미지, 저장소 등)
docker info
# 사용 가능한 명령어 및 옵션 전체 목록
docker help
# 로컬에 저장된 모든 이미지 목록
docker images
# 이미지 다운로드 (Docker Hub 등에서)
docker pull [image-name]
# Dockerfile로 이미지 빌드
docker build -t [image-name] .
# 이미지 태그 지정 (이름/버전 변경)
docker tag [source-image] [target-image:tag]
# 이미지 푸시 (Docker Hub로 업로드)
docker push [image-name]
# 이미지 삭제 (이름 또는 ID로)
docker rmi [image-id]
💡 TIP
docker build -t myapp . → 현재 디렉토리의 Dockerfile을 기반으로 myapp 이미지 생성
# 실행 중인 컨테이너 목록
docker ps
# 중지된 컨테이너 포함 전체 목록
docker ps -a
docker run [options] [image-name]
# 주요 옵션
-d # 백그라운드(detached) 모드로 실행
-p [host:container] # 포트 매핑
--name [container-name] # 컨테이너 이름 지정
-v [host:container] # 볼륨 마운트
#예시
docker run -d -p 8080:80 --name web nginx
# 중지
docker stop [container-id/name]
# 다시 시작
docker start [container-id/name]
# 재시작
docker restart [container-id/name]
# 삭제
docker rm [container-id/name]
# 강제 삭제
docker rm -f [container-id/name]
# 컨테이너 내부에서 명령어 실행
docker exec [container-id] [command]
# 예시: bash 접속
docker exec -it [container-id] /bin/bash
# 로그 실시간 보기
docker logs [container-id] --follow
# 컨테이너 표준 입출력에 연결 (터미널 attach)
docker attach [container-id]
# 즉시 종료(SIGKILL)
docker kill [container-id]
# 특정 signal 지정 종료
docker kill --signal SIGTERM [container-id]
# 컨테이너, 이미지, 네트워크 등의 상세 정보 확인
docker inspect [object-id/name]
# 실시간 리소스 사용량 (CPU, Memory 등)
docker stats [container-id]
# 컨테이너 내부 실행 중인 프로세스 확인
docker top [container-id]
# Docker 데몬 이벤트 실시간 스트림
docker events
| 범주 | 대표 명령어 | 설명 |
|---|---|---|
| General | docker info, docker help | 전체 환경 및 명령어 확인 |
| Image | docker build, docker push, docker rmi | 이미지 빌드/배포/삭제 |
| Container | docker run, docker stop | 컨테이너 실행 / 제어 |
| Interaction | docker exec, docker logs | 내부 조작 / 로그 확인 |
| Debug | docker inspect, docker stats | 상태/리소스 확인 |
컨테이너 이름을 지정(--name)하면 관리가 훨씬 쉬움
docker ps -q → 컨테이너 ID만 깔끔하게 출력
docker system prune → 불필요한 이미지/컨테이너 일괄 정리
docker logs -f [name] → 실시간 로그 모니터링
🧩 한 줄 요약:
Docker는 이미지를 만들고(build) → 실행하고(run) → 관리하며(stop, rm) → 점검(inspect, stats)하는 전 과정을 명령어로 제어한다.