화. 8월 12th, 2025

D: 🚀 개발자라면 반드시 알아야 할 Docker 명령어들을 실무 중심으로 정리했습니다! 컨테이너 관리부터 이미지 빌드, 네트워크 설정까지 핵심 명령어와 옵션을 예제와 함께 상세히 설명드립니다.

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

컨테이너 실행 (run)

docker run [옵션] 이미지명 [명령어]

🔹 핵심 옵션:

  • -d : 백그라운드 실행 (데몬 모드)
  • -p 8080:80 : 호스트 8080포트 ↔ 컨테이너 80포트 연결
  • -v /host/path:/container/path : 볼륨 마운트
  • --name my_container : 컨테이너 이름 지정
  • -e VAR=value : 환경변수 설정

💡 실무 예제:

# MySQL 컨테이너 실행 (비밀번호 설정 + 볼륨 마운트)
docker run -d --name mysql_db \
  -e MYSQL_ROOT_PASSWORD=1234 \
  -v /data/mysql:/var/lib/mysql \
  -p 3306:3306 \
  mysql:8.0

컨테이너 목록 확인 (ps)

docker ps [옵션]
  • -a : 중지된 컨테이너 포함 조회
  • -q : 컨테이너 ID만 출력 (다른 명령어와 조합용)

2. 이미지 관리 명령어

이미지 다운로드 (pull)

docker pull nginx:1.23-alpine
  • 태그를 명시하지 않으면 latest 버전 다운로드

이미지 빌드 (build)

docker build -t my-app:1.0 .

🔹 실무 팁: .dockerignore 파일로 불필요한 파일 제외 가능

이미지 삭제 (rmi)

docker rmi [이미지ID]
  • 사용 중인 이미지는 삭제 불가 → -f 옵션으로 강제 삭제 가능

3. 고급 운영 명령어

실행 중인 컨테이너 접속 (exec)

docker exec -it my_container /bin/bash
  • -it : 인터랙티브 모드로 접속
  • 주로 문제 디버깅 시 사용

로그 확인 (logs)

docker logs -f --tail 100 my_container
  • -f : 실시간 로그 스트리밍
  • --tail : 최근 N줄만 출력

4. 네트워크 관리

네트워크 생성

docker network create my_network

컨테이너 연결

docker run --network=my_network -d my_app

5. 시스템 정리 명령어

사용하지 않는 리소스 일괄 삭제

docker system prune -a --volumes

⚠️ 주의: 모든 중지된 컨테이너, 사용하지 않는 이미지/네트워크/볼륨 삭제

🏆 실무 꿀팁 5선

  1. 자원 제한: --memory="2g" --cpus="1.5"로 컨테이너 리소스 제한
  2. 자동 재시작: --restart unless-stopped로 장애 복구 자동화
  3. 환경변수 파일: --env-file .env로 여러 변수 한번에 설정
  4. 포트 스캔: docker port my_container로 매핑된 포트 확인
  5. 실행 명령어 확인: docker inspect --format='{{.Config.Cmd}}' my_container

📊 자주 쓰는 명령어 TOP 10

순위 명령어 사용 빈도
1 docker ps ⭐⭐⭐⭐⭐
2 docker run ⭐⭐⭐⭐⭐
3 docker logs ⭐⭐⭐⭐
4 docker exec ⭐⭐⭐⭐
5 docker build ⭐⭐⭐
6 docker stop ⭐⭐⭐
7 docker rm ⭐⭐⭐
8 docker images ⭐⭐
9 docker network ⭐⭐
10 docker volume

💡 이 치트시트를 북마크해두고 필요할 때 바로 찾아보세요! Docker CLI의 80%는 상위 20% 명령어로 해결됩니다 🎯

더 궁금한 사항은 댓글로 남겨주시면 실무 경험을 바탕으로 상세히 답변드리겠습니다!

답글 남기기

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