화. 8월 12th, 2025

D: 🚀 도커(Docker)는 현대 개발자에게 필수적인 컨테이너 기술입니다!
처음 시작하는 분들도 쉽게 따라할 수 있도록 기초부터 고급 명령어까지 단계별로 정리해보겠습니다.


🔍 1. 도커 기본 개념 이해하기

도커는 “컨테이너 기반 가상화 기술”로, 애플리케이션을 격리된 환경에서 실행할 수 있게 해줍니다.

  • 이미지(Image) : 실행 가능한 패키지 (예: Ubuntu, MySQL, Nginx)
  • 컨테이너(Container) : 이미지를 실행한 인스턴스
  • 도커 허브(Docker Hub) : 공개 이미지 저장소 (예: docker pull nginx)

💡 간단한 비유

  • 이미지 = 레시피 (설계도)
  • 컨테이너 = 요리 (실행된 결과물)

🛠 2. 도커 설치 & 버전 확인

(1) 도커 설치 (Linux 기준)

sudo apt-get update
sudo apt-get install docker.io

(2) 도커 버전 확인

docker --version

출력 예시: Docker version 20.10.12, build e91ed57


🚀 3. 필수 도커 명령어 10가지

1️⃣ 이미지 다운로드 (pull)

docker pull [이미지명]:[태그]  
# 예시: Ubuntu 최신 버전 다운로드  
docker pull ubuntu:latest  

2️⃣ 이미지 목록 확인 (images)

docker images  

📌 결과 해석:

  • REPOSITORY: 이미지 이름 (예: nginx)
  • TAG: 버전 (예: latest)
  • IMAGE ID: 고유 해시값

3️⃣ 컨테이너 실행 (run)

docker run [옵션] [이미지명]  
# 예시: Nginx 컨테이너 실행 (포트 매핑 + 백그라운드 모드)  
docker run -d -p 8080:80 nginx  

옵션 설명:

  • -d : 백그라운드 실행 (Detached mode)
  • -p : 호스트 포트:컨테이너 포트 매핑

4️⃣ 실행 중인 컨테이너 확인 (ps)

docker ps  

🔎 모든 컨테이너 보기 (종료된 것 포함):

docker ps -a  

5️⃣ 컨테이너 중지/삭제

# 중지  
docker stop [컨테이너ID]  

# 삭제  
docker rm [컨테이너ID]  

# 이미지 삭제  
docker rmi [이미지ID]  

6️⃣ 컨테이너 로그 확인 (logs)

docker logs [컨테이너ID]  

7️⃣ 컨테이너 내부 접속 (exec)

docker exec -it [컨테이너ID] /bin/bash  

-it: 인터랙티브 모드로 접속

8️⃣ 이미지 빌드 (build)

# Dockerfile이 있는 디렉토리에서 실행  
docker build -t [생성할이미지명] .  

9️⃣ 네트워크 관리

# 네트워크 목록 확인  
docker network ls  

# 사용자 정의 네트워크 생성  
docker network create my-network  

🔟 데이터 볼륨 사용 (volume)

# 볼륨 생성  
docker volume create my-volume  

# 볼륨 마운트하여 컨테이너 실행  
docker run -v my-volume:/data ubuntu  

🎯 4. 고급 명령어 & 활용 팁

1. Docker Compose로 여러 컨테이너 관리

# docker-compose.yml 예시 (웹 + DB)  
version: '3'  
services:  
  web:  
    image: nginx  
    ports:  
      - "8000:80"  
  db:  
    image: mysql  
    environment:  
      MYSQL_ROOT_PASSWORD: password  
docker-compose up -d  

2. 이미지 태그 변경 & 푸시

docker tag [기존이미지] [새이미지명]:[태그]  
docker push [사용자명]/[이미지명]  

3. 시스템 정리 (캐시, 사용하지 않는 이미지 삭제)

docker system prune -a  

5. 자주 묻는 질문 (FAQ)

Q1. docker rundocker start 차이?

  • run : 새 컨테이너 생성 + 실행
  • start : 기존 컨테이너 재시작

Q2. 호스트와 컨테이너 간 파일 복사는?

# 호스트 → 컨테이너  
docker cp [호스트파일] [컨테이너ID]:[경로]  

# 컨테이너 → 호스트  
docker cp [컨테이너ID]:[경로] [호스트파일]  

📌 마무리

도커는 개발, 테스트, 배포 전 과정을 효율화하는 강력한 도구입니다.
이 가이드로 기본기를 익히고, 실전 프로젝트에 적용해보세요!

💬 궁금한 점은 댓글로 남겨주세요!
#Docker #컨테이너 #DevOps #개발팁

답글 남기기

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