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 run
과 docker start
차이?
run
: 새 컨테이너 생성 + 실행start
: 기존 컨테이너 재시작
Q2. 호스트와 컨테이너 간 파일 복사는?
# 호스트 → 컨테이너
docker cp [호스트파일] [컨테이너ID]:[경로]
# 컨테이너 → 호스트
docker cp [컨테이너ID]:[경로] [호스트파일]
📌 마무리
도커는 개발, 테스트, 배포 전 과정을 효율화하는 강력한 도구입니다.
이 가이드로 기본기를 익히고, 실전 프로젝트에 적용해보세요!
💬 궁금한 점은 댓글로 남겨주세요!
#Docker #컨테이너 #DevOps #개발팁