D: 🚀 개발자라면 반드시 알아야 할 Docker 명령어를 체계적으로 정리했습니다! 컨테이너 관리부터 이미지 빌드, 네트워킹까지 실무에서 자주 사용하는 50+개의 명령어를 상황별로 분류해 소개합니다.
🔍 Docker 기본 개념 리마인드
도커(Docker)는 애플리케이션을 컨테이너로 패키징하는 오픈소스 플랫폼입니다.
이미지(Image)
: 실행 가능한 읽기 전용 템플릿 (예: Ubuntu 20.04, MySQL 8.0)컨테이너(Container)
: 이미지의 실행 인스턴스도커 허브(Docker Hub)
: 공개 이미지 저장소
1️⃣ 컨테이너 생명주기 관리
# 새 컨테이너 생성 + 실행 (가장 많이 사용!)
docker run -it -d --name my_container nginx:latest
# 실행 중인 컨테이너 목록 확인
docker ps # 또는 docker container ls
# 모든 컨테이너 확인(중지된 것 포함)
docker ps -a
# 컨테이너 중지/시작/재시작
docker stop my_container
docker start my_container
docker restart my_container
# 컨테이너 삭제 (실행 중인 경우 -f 옵션 추가)
docker rm my_container
2️⃣ 이미지 관리 필수 명령어
# 이미지 다운로드 (도커 허브에서)
docker pull ubuntu:22.04
# 로컬 이미지 목록 확인
docker images
# 이미지 빌드 (Dockerfile 기준)
docker build -t my_app:1.0 .
# 이미지 삭제
docker rmi nginx:latest
# 이미지 내부 구조 분석
docker history nginx
3️⃣ 네트워크 & 볼륨 설정
# 네트워크 목록 확인
docker network ls
# 사용자 정의 네트워크 생성
docker network create my_network
# 볼륨 생성 및 연결 예시
docker volume create db_data
docker run -v db_data:/var/lib/mysql mysql
# 호스트-컨테이너 포트 매핑 (중요!)
docker run -p 8080:80 nginx
4️⃣ 실무 활용 고급 명령어
# 실행 중인 컨테이너에 접속
docker exec -it my_container /bin/bash
# 컨테이너 로그 확인
docker logs -f my_container
# 시스템 리소스 사용량 모니터링
docker stats
# 여러 컨테이너 한번에 삭제
docker rm $(docker ps -aq)
# 사용하지 않는 리소스 일괄 정리
docker system prune
💡 실전 예제 모음
예시 1) 웹 애플리케이션 실행
docker run -d --name web_app -p 3000:3000 -v $(pwd):/app node:18
예시 2) MySQL 데이터베이스 설정
docker run -d --name mysql_db \
-e MYSQL_ROOT_PASSWORD=1234 \
-v mysql_data:/var/lib/mysql \
-p 3306:3306 \
mysql:8.0
🛠️ 문제 해결 팁
- 포트 충돌 시:
netstat -tulnp | grep 8080
으로 확인 후 충돌 프로세스 종료 - 디스크 공간 부족:
docker system df
로 사용량 확인 후prune
명령 실행 - 권한 문제:
sudo usermod -aG docker $USER
로 사용자 추가
📚 추천 학습 자료
- 공식 문서: docs.docker.com
- 도커 연습장: play-with-docker.com
- 이미지 저장소: hub.docker.com
이 치트시트를 북마크해두고 필요할 때마다 참고하세요! 🐳 도커 명령어는 처음엔 어렵지만 자주 사용하다 보면 손에 익숙해집니다. 각 명령어에 대한 더 자세한 옵션은 docker [command] --help
로 확인할 수 있습니다.