화. 8월 12th, 2025

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로 컨테이너 자동 재시작을 설정할 수 있습니다.

이제 도커 명령어로 더 스마트하게 개발해보세요! 🐳💻

📢 궁금한 점은 댓글로 남겨주세요! 함께 고민해드립니다 :)

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다