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선
- 자원 제한:
--memory="2g" --cpus="1.5"
로 컨테이너 리소스 제한 - 자동 재시작:
--restart unless-stopped
로 장애 복구 자동화 - 환경변수 파일:
--env-file .env
로 여러 변수 한번에 설정 - 포트 스캔:
docker port my_container
로 매핑된 포트 확인 - 실행 명령어 확인:
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% 명령어로 해결됩니다 🎯
더 궁금한 사항은 댓글로 남겨주시면 실무 경험을 바탕으로 상세히 답변드리겠습니다!