🐳 Docker 명령어 완벽 가이드
안녕하세요! 오늘은 Docker를 사용하면서 꼭 알아야 할 명령어들을 정리해보려고 합니다. Docker를 처음 접하시는 분들도, 이미 사용 중이신 분들도 유용하게 활용하실 수 있도록 카테고리별로 나누어 설명드리겠습니다.
📦 컨테이너 관리 명령어
🚀 docker run - 컨테이너 생성 및 실행
Docker의 가장 기본이 되는 명령어입니다. 새로운 컨테이너를 생성하고 실행합니다.
# 기본 실행
docker run nginx
# create & start 명령를 연속적으로 실행하는 것과 같다
# docker create nginx
# docker start -a 생성된 containerID (-a : attatch)
# 백그라운드에서 실행 (-d 옵션)
docker run -d nginx
# 대화형 모드로 실행 (-it 옵션)
docker run -it ubuntu bash
# 포트 매핑하여 실행 (-p 옵션)
docker run -p 8080:80 nginx
# 컨테이너 이름 지정 (--name 옵션)
docker run --name my-nginx nginx
📋 docker ps - 컨테이너 목록 확인
실행 중인 컨테이너를 확인할 수 있습니다.
# 실행 중인 컨테이너만 보기
docker ps
# 모든 컨테이너 보기 (중지된 것 포함)
docker ps -a
# 최근 생성된 컨테이너 n개만 보기
docker ps -n 5
⏯️ docker start / stop / restart
컨테이너의 상태를 제어하는 명령어들입니다.
docker start 컨테이너명_또는_ID
# 정리할 시간이 준다(바로 종료되지 않는다)
docker stop 컨테이너명_또는_ID
# 강제종료
docker kill 컨테이너명_또는_ID
docker restart 컨테이너명_또는_ID
# 여러 컨테이너 동시 제어
docker stop container1 container2 container3
💻 docker exec - 실행 중인 컨테이너에서 명령어 실행
이미 실행 중인 컨테이너 내부에 접속하거나 명령어를 실행할 때 사용합니다.
# 컨테이너 내부 bash 접속
# 1회성이 아니라 계속 명령어 사용이 가능
# 종료할때는 ctrl+d (일반적인 종료 키는 ctrl + c)
docker exec -it 컨테이너명 bash
docker exec -it 컨테이너명 sh
# 컨테이너에서 특정 명령어 실행
docker exec 컨테이너명 ls /app
docker exec 컨테이너명 cat /var/log/app.log
🗑️ docker rm - 컨테이너 삭제
# 컨테이너 삭제
docker rm 컨테이너명
# 실행 중인 컨테이너 강제 삭제
docker rm -f 컨테이너명
# 중지된 모든 컨테이너 삭제
docker rm $(docker ps -aq)
🖼️ 이미지 관리 명령어
📸 docker images - 이미지 목록 확인
로컬에 저장된 Docker 이미지 목록을 확인합니다.
docker images
# 중간 이미지까지 모두 보기
docker images -a
⬇️ docker pull - 이미지 다운로드
Docker Hub 등의 레지스트리에서 이미지를 다운로드합니다.
# 최신 버전 다운로드
docker pull nginx
# 특정 버전(태그) 다운로드
docker pull nginx:1.21
docker pull mysql:8.0
🔨 docker build - 이미지 빌드
Dockerfile을 이용해 커스텀 이미지를 빌드합니다.
# 현재 디렉토리의 Dockerfile로 빌드
docker build -t myapp:1.0 .
# 특정 Dockerfile 지정하여 빌드
docker build -t myapp:prod -f Dockerfile.prod .
# 빌드 캐시 사용 안 함
docker build --no-cache -t myapp:1.0 .
❌ docker rmi - 이미지 삭제
docker rmi 이미지명
docker rmi nginx:1.21
# 강제 삭제
docker rmi -f 이미지명
# 사용하지 않는 모든 이미지 삭제
docker rmi $(docker images -q)
🏷️ docker tag - 이미지 태그 지정
docker tag 원본이미지:태그 새이미지명:태그
docker tag myapp:1.0 myapp:latest
docker tag myapp:1.0 myregistry.com/myapp:1.0
📊 로그 및 모니터링
📝 docker logs - 컨테이너 로그 확인
컨테이너의 표준 출력 로그를 확인합니다.
# 전체 로그 확인
docker logs 컨테이너명
# 실시간 로그 확인 (tail -f와 유사)
docker logs -f 컨테이너명
# 마지막 N줄만 보기
docker logs --tail 100 컨테이너명
# 타임스탬프와 함께 보기
docker logs -t 컨테이너명
🔍 docker inspect - 상세 정보 확인
컨테이너나 이미지의 상세한 메타데이터를 JSON 형식으로 확인합니다.
docker inspect 컨테이너명
docker inspect 이미지명
# 특정 정보만 추출
docker inspect --format='{{.NetworkSettings.IPAddress}}' 컨테이너명
📈 docker stats - 리소스 사용량 모니터링
컨테이너의 CPU, 메모리, 네트워크 사용량을 실시간으로 확인합니다.
# 모든 컨테이너의 리소스 사용량
docker stats
# 특정 컨테이너만 모니터링
docker stats 컨테이너명
🌐 네트워크 및 볼륨
🔗 docker network - 네트워크 관리
# 네트워크 목록 확인
docker network ls
# 새 네트워크 생성
docker network create my-network
# 네트워크 상세 정보
docker network inspect my-network
# 컨테이너를 네트워크에 연결
docker network connect my-network 컨테이너명
# 네트워크 삭제
docker network rm my-network
💾 docker volume - 볼륨 관리
데이터를 영구적으로 저장하기 위한 볼륨을 관리합니다.
# 볼륨 목록 확인
docker volume ls
# 볼륨 생성
docker volume create my-volume
# 볼륨 상세 정보
docker volume inspect my-volume
# 볼륨 삭제
docker volume rm my-volume
# 사용하지 않는 볼륨 모두 삭제
docker volume prune
⚙️ 자주 사용하는 옵션
docker run 명령어에서 자주 사용되는 옵션들입니다.
옵션 설명 예시
| -d | 백그라운드 실행 (detached mode) | docker run -d nginx |
| -it | 대화형 터미널 모드 | docker run -it ubuntu bash |
| -p | 포트 매핑 (호스트:컨테이너) | docker run -p 8080:80 nginx |
| -v | 볼륨 마운트 | docker run -v /host/path:/container/path nginx |
| --name | 컨테이너 이름 지정 | docker run --name my-app nginx |
| -e | 환경 변수 설정 | docker run -e ENV=prod nginx |
| --rm | 컨테이너 종료 시 자동 삭제 | docker run --rm ubuntu |
| --network | 네트워크 연결 | docker run --network my-net nginx |
| --restart | 재시작 정책 | docker run --restart always nginx |
💡 실전 예제
# 웹 서버를 백그라운드에서 실행하고 포트 매핑
docker run -d -p 8080:80 --name my-web nginx
# 환경 변수와 볼륨을 사용하는 데이터베이스
docker run -d \
--name my-db \
-e MYSQL_ROOT_PASSWORD=secret \
-v mysql-data:/var/lib/mysql \
-p 3306:3306 \
mysql:8.0
# 자동 재시작 설정과 함께 애플리케이션 실행
docker run -d \
--name my-app \
--restart unless-stopped \
-p 3000:3000 \
myapp:latest
🧹 정리 명령어
시스템 리소스를 확보하기 위한 정리 명령어들입니다.
🗂️ docker system prune
# 중지된 컨테이너, 미사용 네트워크, dangling 이미지 삭제
docker system prune
# 사용하지 않는 이미지까지 모두 삭제
docker system prune -a
# 볼륨까지 삭제
docker system prune -a --volumes
# 확인 없이 바로 삭제
docker system prune -f
🔧 개별 정리 명령어
# 중지된 컨테이너만 삭제
docker container prune
# 사용하지 않는 이미지 삭제
docker image prune
# 사용하지 않는 볼륨 삭제
docker volume prune
# 사용하지 않는 네트워크 삭제
docker network prune
✨ 마무리
Docker의 주요 명령어들을 살펴봤습니다. 처음에는 많아 보일 수 있지만, 실제로는 run, ps, logs, exec, stop 정도만 알아도 기본적인 사용에는 문제가 없습니다.
🎯 초보자라면 먼저 익혀야 할 명령어:
- docker run - 컨테이너 실행
- docker ps - 실행 중인 컨테이너 확인
- docker logs - 로그 확인
- docker exec -it 컨테이너명 bash - 컨테이너 접속
- docker stop - 컨테이너 중지
실무에서는 주로 docker-compose를 사용하지만, 기본 명령어를 이해하고 있으면 트러블슈팅이나 간단한 테스트에 매우 유용합니다.
궁금한 점이나 추가로 다뤄줬으면 하는 내용이 있다면 댓글로 남겨주세요! 😊
🏷️ 태그: #Docker #컨테이너 #DevOps #개발환경 #도커명령어
'Server > Docker' 카테고리의 다른 글
| [Docker 필수 명령어] docker ps 명령어 정리 (0) | 2025.11.06 |
|---|---|
| [도커(docker)] docker-compose를 이용하여 react app 서버 설치 및 개발 환경 구성하기 (0) | 2025.02.22 |
| [도커(docker)] Dockerfile를 이용하여 react app 서버 설치 및 개발 환경 구성하기 (0) | 2025.02.21 |
| [도커(docker)] docker build 명령어 사용법 - Dockerfile (0) | 2025.02.21 |
| [도커(docker)] Docker Compose로 Node.js Express 서버와 Redis 연동하기 (0) | 2025.02.19 |












