화. 8월 12th, 2025

D: Docker는 현대 개발 환경에서 필수적인 도구로, 컨테이너화된 애플리케이션을 효율적으로 관리할 수 있게 해줍니다. 하지만 수많은 명령어와 옵션을 외우기란 쉽지 않죠! 이번 포스팅에서는 실무에서 자주 사용하는 Docker 명령어를 체계적으로 정리해보겠습니다. 개발 생산성을 높이는 핵심 명령어부터 고급 활용법까지 알아보세요!


🔥 1. 기본 컨테이너 관리 명령어

이미지 다운로드 & 실행

docker pull [이미지명]:[태그]  # 예: docker pull nginx:latest  
docker run [옵션] [이미지명]   # 예: docker run -d -p 8080:80 --name my-nginx nginx  
  • -d: 백그라운드 실행 (detached mode)
  • -p: 포트 매핑 (호스트포트:컨테이너포트)
  • --name: 컨테이너 이름 지정

실행 중인 컨테이너 확인

docker ps          # 실행 중인 컨테이너 목록  
docker ps -a       # 모든 컨테이너 (종료된 것 포함)  
docker stats       # 실시간 리소스 사용량 모니터링  

🛠 2. 컨테이너 제어 & 디버깅

컨테이너 시작/정지/재시작

docker start [컨테이너ID]  
docker stop [컨테이너ID]      # Graceful shutdown  
docker restart [컨테이너ID]  
docker kill [컨테이너ID]      # 강제 종료 (SIGKILL)  

로그 확인

docker logs [컨테이너ID]      # 로그 출력  
docker logs -f [컨테이너ID]   # 실시간 로그 스트리밍 (tail -f와 동일)  

컨테이너 내부 접속

docker exec -it [컨테이너ID] /bin/bash  # 대화형 쉘 접속  
# 예: docker exec -it my-nginx bash  
  • -it: 인터랙티브 모드로 터미널 연결

📦 3. 이미지 관리

이미지 빌드 & 태깅

docker build -t [이미지명]:[태그] [Dockerfile 경로]  
# 예: docker build -t my-app:1.0 .  

이미지 목록 & 삭제

docker images           # 로컬 이미지 목록  
docker rmi [이미지ID]   # 이미지 삭제  

Docker Hub에 푸시

docker login  
docker tag [기존이미지] [사용자명]/[레포지토리명]:[태그]  
docker push [사용자명]/[레포지토리명]:[태그]  

🧹 4. 정리 & 최적화

사용하지 않는 리소스 삭제

docker system prune      # 중지된 컨테이너, 사용하지 않는 네트워크, dangling 이미지 일괄 삭제  
docker volume prune     # 사용하지 않는 볼륨 정리  

디스크 사용량 확인

docker system df        # Docker 디스크 사용량 통계  

🚀 5. 고급 활용 팁

컨테이너 간 네트워크 연결

docker network create my-network  
docker run --network=my-network [이미지명]  

환경 변수 전달

docker run -e "ENV_VAR=value" [이미지명]  
# 예: docker run -e "DB_PASSWORD=1234" mysql  

볼륨 마운트 (데이터 영속화)

docker run -v [호스트경로]:[컨테이너경로] [이미지명]  
# 예: docker run -v /home/data:/app/data nginx  

📌 실전 예제: 웹 서버 + DB 연동

# MySQL 컨테이너 실행 (볼륨 마운트)  
docker run -d --name mysql-db -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1234 mysql:5.7  

# 웹 애플리케이션 실행 (네트워크 연결)  
docker run -d --name web-app -p 3000:3000 --link mysql-db:db my-web-app  

💡 마무리

이 치트 시트만 숙지해도 80% 이상의 Docker 작업을 빠르게 처리할 수 있습니다! 🎉
더 복잡한 시나리오는 docker-compose를 활용하는 것이 좋습니다. (다음 포스팅 예정!)

어떤 Docker 명령어가 가장 유용했나요? 댓글로 공유해주세요! 👇

🔗 참고 문서: Docker 공식 문서

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다