ν™”. 8μ›” 12th, 2025

D: πŸš€ 도컀(Docker)κ°€ λ­”κ°€μš”?
μ»¨ν…Œμ΄λ„ˆ 기반의 가상화 기술둜, μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ 격리된 ν™˜κ²½μ—μ„œ μ‹€ν–‰ν•  수 있게 ν•΄μ€λ‹ˆλ‹€.

  • 전톡적 가상머신 vs 도컀
    • 가상머신: 전체 OSλ₯Ό 가상화 β†’ 무겁고 느림
    • 도컀: 호슀트 OS 컀널 곡유 β†’ 가볍고 빠름 (예: μš°λΆ„νˆ¬ μ„œλ²„μ—μ„œ MySQL, Redisλ₯Ό 각각 μ»¨ν…Œμ΄λ„ˆλ‘œ λ„μš°κΈ°)

πŸ“ μ„€μΉ˜ μ „ 쀀비사항

  1. μš°λΆ„νˆ¬ 버전 확인 (20.04 LTS 이상 ꢌμž₯)
    lsb_release -a
  2. νŒ¨ν‚€μ§€ μ—…λ°μ΄νŠΈ
    sudo apt update && sudo apt upgrade -y

πŸ”§ 1단계: 도컀 μ„€μΉ˜

1. ν•„μˆ˜ νŒ¨ν‚€μ§€ μ„€μΉ˜

sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

2. 도컀 곡식 GPG ν‚€ μΆ”κ°€

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

3. μ €μž₯μ†Œ 등둝

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

4. 도컀 μ—”μ§„ μ„€μΉ˜

sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io

5. μ„€μΉ˜ 확인

sudo docker run hello-world  # "Hello from Docker!" λ©”μ‹œμ§€ 좜λ ₯ 확인

πŸ’‘ 팁: sudo 없이 도컀 μ‚¬μš©ν•˜κΈ°

sudo usermod -aG docker $USER && newgrp docker

(λ‘œκ·Έμ•„μ›ƒ ν›„ μž¬μ ‘μ† ν•„μš”)


πŸ”Œ 2단계: 도컀 컴포즈(Docker Compose) μ„€μΉ˜

1. μ΅œμ‹  버전 μ„€μΉ˜ (v2 κΈ°μ€€)

sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2. μ‹€ν–‰ κΆŒν•œ λΆ€μ—¬

sudo chmod +x /usr/local/bin/docker-compose

3. 버전 확인

docker-compose --version  # 예: Docker Compose version v2.23.0

🎯 3단계: ν…ŒμŠ€νŠΈ ν”„λ‘œμ νŠΈλ‘œ ν™•μΈν•˜κΈ°

μ˜ˆμ‹œ: Nginx μ„œλ²„ λ„μš°κΈ°

  1. docker-compose.yml 파일 생성:
    version: '3'
    services:
     web:
       image: nginx:latest
       ports:
         - "8080:80"
  2. μ‹€ν–‰:
    docker-compose up -d
  3. λΈŒλΌμš°μ €μ—μ„œ http://localhost:8080 접속 β†’ Nginx 초기 νŽ˜μ΄μ§€ 확인!

🚨 문제 ν•΄κ²° FAQ

  • Q1. GPG ν‚€ 였λ₯˜κ°€ λ‚˜μš”.
    β†’ μ €μž₯μ†Œ 등둝 λ‹¨κ³„μ—μ„œ signed-by 경둜 μž¬ν™•μΈ
  • Q2. 포트 좩돌 λ°œμƒ
    β†’ netstat -tulnp둜 μ‚¬μš© 쀑인 포트 확인 ν›„ docker-compose.yml μˆ˜μ •
  • Q3. 도컀 λͺ…λ Ήμ–΄κ°€ μ•ˆ λ¨ΉνžŒλ‹€λ©΄?
    β†’ sudo systemctl restart docker둜 μ„œλΉ„μŠ€ μž¬μ‹œμž‘

πŸ“š 마무리

이제 μš°λΆ„νˆ¬μ—μ„œ 도컀와 도컀 컴포즈λ₯Ό 자유둭게 μ‚¬μš©ν•  μ€€λΉ„κ°€ μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€! πŸŽ‰

✍️ μ‹€μŠ΅ 과제: MySQL + PHPMyAdmin을 도컀 컴포즈둜 연동해 λ³΄μ„Έμš”! (힌트: mysql:5.7 이미지 μ‚¬μš©)

κΆκΈˆν•œ 점은 λŒ“κΈ€λ‘œ λ‚¨κ²¨μ£Όμ„Έμš”! πŸ‘‡

λ‹΅κΈ€ 남기기

이메일 μ£Όμ†ŒλŠ” κ³΅κ°œλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. ν•„μˆ˜ ν•„λ“œλŠ” *둜 ν‘œμ‹œλ©λ‹ˆλ‹€