Docker는 현대 개발 인프라의 핵심 도구로, 컨테이너화된 애플리케이션을 관리하는 데 필수적입니다. 이 가이드에서는 개발자와 DevOps 엔지니어가 반드시 알아야 할 Docker 명령어 30가지를 카테고리별로 상세히 설명합니다. 모든 예제는 실제 사용 사례를 반영했습니다!
🛠️ 1. 기본 명령어 & 정보 확인
docker version
Docker 클라이언트와 서버 버전 확인
docker version
# Client: Docker Engine - Community
# Server: Docker Engine - Community
docker info
Docker 시스템 전반적인 정보 확인 (컨테이너/이미지 수, 메모리 사용량 등)
docker info | grep Containers
# Containers: 14
📦 2. 이미지 관리
docker images
로컬에 저장된 도커 이미지 목록 출력
docker images
# REPOSITORY TAG IMAGE ID CREATED SIZE
# nginx latest 605c77e624dd 2 months ago 141MB
docker pull
레지스트리에서 이미지 다운로드
docker pull ubuntu:22.04
docker rmi
로컬 이미지 삭제
docker rmi nginx:alpine
docker build
Dockerfile로 이미지 빌드
docker build -t my-app:1.0 .
# -t: 태그 지정, .: 현재 디렉토리의 Dockerfile 사용
docker tag
이미지에 새 태그 부여
docker tag my-app:1.0 my-registry.com/my-app:prod
docker push
이미지 레지스트리에 업로드
docker push my-registry.com/my-app:prod
docker commit
실행 중인 컨테이너로부터 새 이미지 생성
docker commit my-container my-snapshot
🐋 3. 컨테이너 실행 & 관리
docker run
새 컨테이너 실행 (⭐️ 가장 핵심!)
docker run -d -p 8080:80 --name web nginx
# -d: 백그라운드 실행, -p: 포트 매핑, --name: 이름 지정
docker ps
실행 중인 컨테이너 목록 확인
docker ps -a # -a: 중지된 컨테이너 포함 전체 조회
docker stop
실행 중인 컨테이너 정지
docker stop web
docker start
중지된 컨테이너 재시작
docker start web
docker rm
컨테이너 삭제
docker rm web
docker rm $(docker ps -aq) # 모든 컨테이너 삭제
docker exec
실행 중인 컨테이너 내부에서 명령 실행
docker exec -it web bash
# -it: 인터랙티브 터미널 모드
docker cp
호스트 ↔ 컨테이너 간 파일 복사
docker cp index.html web:/usr/share/nginx/html
📊 4. 모니터링 & 로그
docker logs
컨테이너 로그 확인
docker logs -f web # -f: 실시간 스트리밍
docker stats
실시간 리소스 사용량 모니터링
docker stats
# CONTAINER ID NAME CPU % MEM USAGE / LIMIT
docker top
컨테이너 내 실행 중인 프로세스 확인
docker top web
docker inspect
컨테이너/이미지 상세 정보 JSON 출력
docker inspect web | grep IPAddress
🌐 5. 네트워킹
docker network ls
네트워크 목록 조회
docker network ls
# NETWORK ID NAME DRIVER
docker network create
사용자 정의 네트워크 생성
docker network create my-net
docker network connect
컨테이너를 네트워크에 연결
docker network connect my-net web
💾 6. 볼륨 관리
docker volume create
영구 데이터 저장용 볼륨 생성
docker volume create db-data
docker volume ls
볼륨 목록 확인
docker volume ls
docker volume inspect
볼륨 상세 정보 확인
docker volume inspect db-data
🚀 7. Docker Compose
docker-compose up
docker-compose.yml 기반 서비스 실행
docker-compose up -d # 백그라운드 실행
docker-compose down
Compose로 실행한 서비스 중지 및 삭제
docker-compose down --volumes # 볼륨 함께 삭제
🧹 8. 시스템 관리
docker system prune
사용하지 않는 리소스 일괄 정리
docker system prune -a --volumes
# -a: 사용 안 하는 이미지 포함, --volumes: 볼륨 삭제
docker login
레지스트리 로그인 (Docker Hub 등)
docker login registry.example.com
docker logout
레지스트리 로그아웃
docker logout registry.example.com
docker search
Docker Hub에서 이미지 검색
docker search --limit 5 redis
🏁 마무리
이 30가지 명령어만 익혀도 Docker 생태계에서 90% 이상의 작업을 수행할 수 있습니다! 실제 서비스 운영 시 자주 사용하는 명령어들입니다. 🎯
> 실전 팁
> – docker run
시 --restart=always
로 컨테이너 자동 재시작 설정
> – docker exec -it
대신 docker attach
는 사용 지양 (컨테이너 종료 시 프로세스 중단됨)
> – 프로덕션 환경에선 반드시 docker-compose
로 관리 권장
명령어를 직접 타이핑하며 익히는 것이 가장 효과적입니다. Happy Dockerizing! 🐳💻