D: 🚀 Docker는 현대 개발과 배포에서 필수적인 도구입니다! 하지만 수많은 명령어와 옵션 때문에 처음 사용할 때는 헷갈리기 마련이죠. 😵💫 이번 포스팅에서는 실무에서 자주 사용하는 Docker 명령어와 핵심 옵션을 정리해보겠습니다.
🔹 1. 기본 컨테이너 관리 명령어
1.1. 컨테이너 실행 & 관리
# 이미지 다운로드 (Pull)
docker pull [IMAGE_NAME]:[TAG]
# 컨테이너 실행 (Run)
docker run [OPTIONS] [IMAGE]
💡 주요 옵션:
-d
: 백그라운드 실행 (--detach
)-p [HOST_PORT]:[CONTAINER_PORT]
: 포트 매핑 (e.g.,-p 8080:80
)--name [NAME]
: 컨테이너 이름 지정-v [HOST_DIR]:[CONTAINER_DIR]
: 볼륨 마운트-e [ENV_VAR]=[VALUE]
: 환경 변수 설정
예시:
# Nginx를 백그라운드에서 실행 + 8080 포트로 노출
docker run -d -p 8080:80 --name my-nginx nginx
1.2. 실행 중인 컨테이너 확인 & 제어
# 실행 중인 컨테이너 목록 확인
docker ps
# 모든 컨테이너 확인 (종료된 것 포함)
docker ps -a
# 컨테이너 중지
docker stop [CONTAINER_ID or NAME]
# 컨테이너 강제 종료
docker kill [CONTAINER_ID or NAME]
# 컨테이너 재시작
docker restart [CONTAINER_ID or NAME]
# 컨테이너 로그 확인
docker logs [CONTAINER_ID or NAME]
# 컨테이너 내부 쉘 접속
docker exec -it [CONTAINER_ID] /bin/bash
🔹 2. 이미지 관리 명령어
2.1. 이미지 조회 & 삭제
# 로컬 이미지 목록 확인
docker images
# 이미지 삭제
docker rmi [IMAGE_ID]
# 사용하지 않는 이미지 일괄 삭제
docker image prune
2.2. Dockerfile로 이미지 빌드
# 현재 디렉토리의 Dockerfile로 이미지 빌드
docker build -t [IMAGE_NAME]:[TAG] .
# 특정 Dockerfile 지정
docker build -f [DOCKERFILE_PATH] -t [IMAGE_NAME]:[TAG] .
예시:
# my-app 이미지 빌드 (태그: v1.0)
docker build -t my-app:v1.0 .
🔹 3. 네트워크 & 볼륨 관리
3.1. 네트워크 관리
# 네트워크 목록 확인
docker network ls
# 네트워크 생성
docker network create [NETWORK_NAME]
# 특정 네트워크로 컨테이너 실행
docker run --network [NETWORK_NAME] [IMAGE]
3.2. 볼륨 관리
# 볼륨 목록 확인
docker volume ls
# 볼륨 생성
docker volume create [VOLUME_NAME]
# 볼륨 마운트하여 컨테이너 실행
docker run -v [VOLUME_NAME]:[CONTAINER_PATH] [IMAGE]
예시:
# MySQL 데이터 볼륨 마운트
docker run -d -v mysql_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1234 mysql
🔹 4. Docker Compose로 멀티 컨테이너 관리
docker-compose.yml
예시:
version: '3'
services:
web:
image: nginx
ports:
- "8080:80"
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: 1234
volumes:
- mysql_data:/var/lib/mysql
volumes:
mysql_data:
주요 명령어:
# 서비스 시작 (백그라운드)
docker-compose up -d
# 서비스 중지
docker-compose down
# 로그 확인
docker-compose logs
🔹 5. 실무 TIP & 문제 해결
✅ 도커 디스크 정리
# 사용하지 않는 컨테이너, 이미지, 네트워크, 볼륨 일괄 삭제
docker system prune -a
✅ 컨테이너 CPU/Memory 제한
# CPU 50%, Memory 512MB 제한
docker run --cpus=0.5 -m 512m [IMAGE]
✅ 도커 로그 확인 (실시간)
docker logs -f [CONTAINER_ID]
✅ 도커 컨테이너 IP 확인
docker inspect [CONTAINER_ID] | grep IPAddress
🎯 마무리
이번 포스팅에서는 실무에서 자주 사용하는 Docker 명령어와 핵심 옵션을 정리해봤습니다. 🎓
처음에는 외우기 어렵지만, 자주 사용하다 보면 자연스럽게 익숙해질 거예요! 😊
도움이 되셨다면 공유 부탁드립니다! 🚀
더 궁금한 점은 댓글로 남겨주세요. 👇
#Docker #DevOps #컨테이너 #명령어 #치트시트