[Docker] Docker 기본 명령어 정리
Docker를 사용하면서 가장 자주 사용하는 명령어들을 실전 예제와 함께 알아보자.
기본적인 명령어부터 실무에서 자주 사용하는 고급 명령어까지 정리했다.
기본 명령어
이미지 관련 명령어
# 이미지 검색
docker search nginx
# 이미지 다운로드
docker pull nginx:latest
# 이미지 목록 확인
docker images
# 이미지 삭제
docker rmi nginx:latest
# 사용하지 않는 이미지 모두 삭제
docker image prune -a
컨테이너 관련 명령어
# 컨테이너 생성 및 실행
docker run -d -p 80:80 --name my-nginx nginx
# 실행 중인 컨테이너 목록
docker ps
# 모든 컨테이너 목록 (중지된 컨테이너 포함)
docker ps -a
# 컨테이너 중지
docker stop my-nginx
# 컨테이너 시작
docker start my-nginx
# 컨테이너 재시작
docker restart my-nginx
# 컨테이너 삭제
docker rm my-nginx
# 실행 중인 컨테이너 강제 삭제
docker rm -f my-nginx
컨테이너 상세 관리
컨테이너 로그 확인
# 기본 로그 확인
docker logs my-nginx
# 실시간 로그 확인
docker logs -f my-nginx
# 최근 100줄만 확인
docker logs --tail 100 my-nginx
# 타임스탬프 표시
docker logs -t my-nginx
컨테이너 리소스 관리
# 컨테이너 리소스 사용량 확인
docker stats
# 메모리 제한 설정
docker run -d --memory="512m" nginx
# CPU 제한 설정
docker run -d --cpus="1.5" nginx
# 상세 시스템 정보 확인
docker system df
네트워크 관리
네트워크 기본 명령어
# 네트워크 목록 확인
docker network ls
# 네트워크 생성
docker network create my-network
# 네트워크 상세 정보
docker network inspect my-network
# 컨테이너를 네트워크에 연결
docker network connect my-network my-container
# 네트워크에서 컨테이너 연결 해제
docker network disconnect my-network my-container
볼륨 관리
# 볼륨 생성
docker volume create my-volume
# 볼륨 목록 확인
docker volume ls
# 볼륨 상세 정보
docker volume inspect my-volume
# 볼륨 삭제
docker volume rm my-volume
# 사용하지 않는 볼륨 모두 삭제
docker volume prune
실전 활용 예제
웹 서버 실행
# Nginx 웹 서버 실행 (백그라운드)
docker run -d \
--name my-nginx \
-p 80:80 \
-v /my/content:/usr/share/nginx/html \
nginx:latest
# 환경변수 설정과 함께 MySQL 실행
docker run -d \
--name my-mysql \
-e MYSQL_ROOT_PASSWORD=mysecretpassword \
-e MYSQL_DATABASE=myapp \
-v mysql-data:/var/lib/mysql \
mysql:5.7
개발 환경 설정
# MongoDB 실행
docker run -d \
--name my-mongo \
-p 27017:27017 \
-v mongodb-data:/data/db \
mongo:latest
# Redis 캐시 서버 실행
docker run -d \
--name my-redis \
-p 6379:6379 \
redis:latest
Docker Compose 기본 명령어
# 서비스 시작
docker-compose up -d
# 서비스 중지
docker-compose down
# 서비스 로그 확인
docker-compose logs
# 서비스 상태 확인
docker-compose ps
# 특정 서비스만 재시작
docker-compose restart web-server
고급 활용
컨테이너 프로세스 관리
# 컨테이너 내부 쉘 접속
docker exec -it my-container /bin/bash
# 컨테이너 내부 프로세스 확인
docker top my-container
# 컨테이너 변경사항 확인
docker diff my-container
이미지 관리
# 이미지 히스토리 확인
docker history nginx:latest
# 이미지를 tar 파일로 저장
docker save -o nginx.tar nginx:latest
# tar 파일로부터 이미지 로드
docker load -i nginx.tar
# 컨테이너로부터 새 이미지 생성
docker commit my-container my-new-image:latest
문제 해결과 디버깅
컨테이너 문제 해결
# 컨테이너 상세 정보 확인
docker inspect my-container
# 컨테이너 리소스 사용량 실시간 모니터링
docker stats my-container
# 특정 프로세스 실행
docker exec my-container ps aux
# 네트워크 연결 확인
docker exec my-container ping google.com
시스템 관리
# Docker 시스템 정보 확인
docker system info
# 디스크 사용량 확인
docker system df
# 사용하지 않는 리소스 정리
docker system prune -a
# 이벤트 모니터링
docker events
실무 팁
컨테이너 자동 재시작 설정
docker run -d --restart=always nginx
헬스체크 설정
docker run -d \
--health-cmd="curl -f http://localhost/ || exit 1" \
--health-interval=5s \
--health-retries=3 \
nginx
로그 관리
# 로그 드라이버 설정
docker run -d \
--log-driver=json-file \
--log-opt max-size=10m \
--log-opt max-file=3 \
nginx
리소스 제한 설정
docker run -d \
--memory="1g" \
--memory-swap="2g" \
--cpus="2" \
--pids-limit=100 \
nginx
'개발&프로그래밍' 카테고리의 다른 글
[Apple] Mac 스크린샷 캡쳐 및 이미지 편집하기, Shottr (0) | 2024.12.10 |
---|---|
[Apple] 개발자를 위한 Mac 필수 단축키 모음 (2) | 2024.12.09 |
[Spring Boot] 로깅 설정 가이드 (0) | 2024.12.04 |
[Spring Boot] application.properties vs application.yml (0) | 2024.12.03 |
[IntelliJ] 인텔리제이 메모리 늘리기(메모리 설정) (0) | 2024.11.28 |
댓글