ํ™”. 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 ์ด๋ฏธ์ง€ ์‚ฌ์šฉ)

๊ถ๊ธˆํ•œ ์ ์€ ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์„ธ์š”! ๐Ÿ‘‡

๋‹ต๊ธ€ ๋‚จ๊ธฐ๊ธฐ

์ด๋ฉ”์ผ ์ฃผ์†Œ๋Š” ๊ณต๊ฐœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•„์ˆ˜ ํ•„๋“œ๋Š” *๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค