D: 🚀 도커(Docker)는 현대 개발자에게 필수적인 컨테이너 기술입니다. 하지만 명령어가 많아 헷갈리시죠? 이 가이드에서는 이미지, 컨테이너, 네트워크를 중심으로 핵심 명령어를 체계적으로 정리해드립니다!
🔹 1. 도커 이미지(Docker Image) 관리 명령어
이미지는 컨테이너의 템플릿입니다. 도커 허브에서 가져오거나 직접 만들 수 있어요.
📌 기본 명령어
# 이미지 검색 (도커 허브에서)
docker search [이미지명]
# 이미지 다운로드 (pull)
docker pull [이미지명]:[태그]
# 로컬 이미지 목록 확인
docker images
# 이미지 삭제
docker rmi [이미지ID]
🛠️ 실전 예제
# Ubuntu 최신 버전 다운로드
docker pull ubuntu:latest
# 불필요한 이미지 한 번에 삭제 (dangling 이미지)
docker image prune
🔹 2. 도커 컨테이너(Docker Container) 제어 명령어
컨테이너는 실행 중인 이미지입니다. 생명주기 관리가 중요하죠!
📌 기본 명령어
# 컨테이너 생성 & 실행 (run)
docker run -d --name [컨테이너명] [이미지명]
# 실행 중인 컨테이너 목록 확인
docker ps
# 모든 컨테이너 목록 확인 (중지된 것 포함)
docker ps -a
# 컨테이너 중지/시작/재시작
docker stop [컨테이너ID]
docker start [컨테이너ID]
docker restart [컨테이너ID]
# 컨테이너 삭제
docker rm [컨테이너ID]
🛠️ 실전 예제
# Nginx 컨테이너 백그라운드 실행 + 포트 연결
docker run -d --name my-nginx -p 8080:80 nginx
# 컨테이너 로그 확인
docker logs my-nginx
# 실행 중인 컨테이너에 접속 (bash 쉘)
docker exec -it my-nginx /bin/bash
🔹 3. 도커 네트워크(Docker Network) 설정 명령어
컨테이너 간 통신을 위해 네트워크를 구성해야 합니다.
📌 기본 명령어
# 네트워크 목록 확인
docker network ls
# 새 네트워크 생성 (bridge, overlay 등)
docker network create [네트워크명]
# 컨테이너를 특정 네트워크에 연결
docker network connect [네트워크명] [컨테이너명]
🛠️ 실전 예제
# my-network 생성 후 두 컨테이너 연결
docker network create my-network
docker run -d --name web --network my-network nginx
docker run -d --name db --network my-network mysql
# 네트워크 상세 정보 확인
docker network inspect my-network
🔥 통합 예제: 웹 앱 + DB 연동
1️⃣ 네트워크 생성
docker network create app-net
2️⃣ MySQL 컨테이너 실행
docker run -d --name mysql-db \
--network app-net \
-e MYSQL_ROOT_PASSWORD=1234 \
mysql:5.7
3️⃣ PHP 웹 서버 실행
docker run -d --name web-app \
--network app-net \
-p 8000:80 \
-v ./php-code:/var/www/html \
php:7.4-apache
이제 localhost:8000
에서 웹 앱이 DB와 연동됩니다! 🌐
💡 추가 팁
docker-compose.yml
로 한 번에 관리하면 더 편리합니다.docker system prune
으로 불필요한 리소스를 정리하세요.--restart=always
로 컨테이너 자동 재시작을 설정할 수 있습니다.
이제 도커 명령어로 더 스마트하게 개발해보세요! 🐳💻
📢 궁금한 점은 댓글로 남겨주세요! 함께 고민해드립니다 :)