2025-09-18 01:12:03
๋ฐ˜์‘ํ˜•

๐Ÿณ ๋ฆฌ๋ˆ…์Šค(Ubuntu)์—์„œ Docker ์„ค์น˜ํ•˜๊ธฐ

1. ์‚ฌ์ „ ์ค€๋น„ ์‚ฌํ•ญ

ํ•„์š”ํ•œ ํŒจํ‚ค์ง€ ์„ค์น˜

sudo apt-get update  
# ํŒจํ‚ค์ง€ ๋ชฉ๋ก์„ ์ตœ์‹ ์œผ๋กœ ๊ฐฑ์‹ 

sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
# ๋„์ปค ์„ค์น˜์— ํ•„์š”ํ•œ ๊ธฐ๋ณธ ๋„๊ตฌ ์„ค์น˜
# - ca-certificates : ๋ณด์•ˆ ์ธ์ฆ์„œ ๊ด€๋ จ
# - curl : ์ธํ„ฐ๋„ท์—์„œ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ
# - gnupg : ๋ณด์•ˆ ํ‚ค ๊ด€๋ฆฌ
# - lsb-release : Ubuntu ๋ฒ„์ „ ํ™•์ธ์šฉ

2. GPG ํ‚ค ์ถ”๊ฐ€

sudo mkdir -m 0755 -p /etc/apt/keyrings
# ๋„์ปค ํ‚ค๋ฅผ ์ €์žฅํ•  ํด๋” ์ƒ์„ฑ (๊ถŒํ•œ 0755)

sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
    sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# ๋„์ปค ๊ณต์‹ GPG ํ‚ค๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ›„ ๋ณ€ํ™˜ํ•˜์—ฌ ์ €์žฅ


3. Docker ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ถ”๊ฐ€

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# ๋„์ปค ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ €์žฅ์†Œ(repository)๋ฅผ ์‹œ์Šคํ…œ์— ๋“ฑ๋ก
 
 
 
 

4. Docker ์—”์ง„ ์„ค์น˜

sudo apt-get update
# ์ €์žฅ์†Œ ๋“ฑ๋ก ํ›„ ๋‹ค์‹œ ํŒจํ‚ค์ง€ ๋ชฉ๋ก ์—…๋ฐ์ดํŠธ

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# ๋„์ปค ๋ณธ์ฒด์™€ ๊ด€๋ จ ๋„๊ตฌ ์„ค์น˜
# - docker-ce : ๋„์ปค ์—”์ง„ (Community Edition)
# - docker-ce-cli : ๋„์ปค ๋ช…๋ น์–ด ๋„๊ตฌ
# - containerd.io : ์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ ๋Ÿฐํƒ€์ž„
# - docker-buildx-plugin : ํ™•์žฅ ๋นŒ๋“œ ๋„๊ตฌ
# - docker-compose-plugin : ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ ๋„๊ตฌ
 

๐Ÿ’ก ์„ค์น˜ ์ค‘ Y ๋ฅผ ์ž…๋ ฅํ•ด์•ผ ์„ค์น˜๊ฐ€ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.


5. ์„ค์น˜ ํ™•์ธ

docker # ๋„์ปค ๋ช…๋ น์–ด ์‹คํ–‰ → ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์˜ต์…˜์ด ๋‚˜์˜ค๋ฉด ์ •์ƒ ์„ค์น˜


6. ๋„์ปค ์„œ๋น„์Šค ์ƒํƒœ ํ™•์ธ

systemctl status docker # ๋„์ปค ์„œ๋น„์Šค๊ฐ€ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธ # active (running) ์ด ๋‚˜์˜ค๋ฉด ์ •์ƒ ์‹คํ–‰ ์ค‘


7. ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋„ ๋„์ปค ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ฒŒ ์„ค์ •

sudo usermod -aG docker $USER
# ํ˜„์žฌ ์‚ฌ์šฉ์ž๋ฅผ docker ๊ทธ๋ฃน์— ์ถ”๊ฐ€ → sudo ์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ

exit
# ์„ธ์…˜ ์ข…๋ฃŒ ํ›„ ๋‹ค์‹œ ๋กœ๊ทธ์ธํ•ด์•ผ ๋ฐ˜์˜๋จ


8. ๋„์ปค ๋ฒ„์ „ ํ™•์ธ

docker version # ๋„์ปค ํด๋ผ์ด์–ธํŠธ/์„œ๋ฒ„ ๋ฒ„์ „ ํ™•์ธ


9. ์ƒ˜ํ”Œ ์‹คํ–‰ (Hello World)

docker run hello-world 

# ๋„์ปค ํ—ˆ๋ธŒ์—์„œ hello-world ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ ํ›„ ์‹คํ–‰ 
# ์ •์ƒ ์„ค์น˜ ์‹œ ์•ˆ๋‚ด ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ


๐Ÿ“Š ์„ค์น˜ ๊ณผ์ • ์‹œ๊ฐํ™” (Mermaid)

 

 


๐Ÿ”ง ํ˜„์—…์—์„œ ๋„์ปค ์„ค์น˜ ํ›„ ํ•˜๋Š” ์ผ

  1. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•
    • ํŒ€์›์ด ๊ฐ™์€ ํ™˜๊ฒฝ์—์„œ ๊ฐœ๋ฐœ → ํ™˜๊ฒฝ ์ฐจ์ด ์ค„์ž„
  2. ํ…Œ์ŠคํŠธ ์„œ๋ฒ„ ์šด์˜
    • docker-compose ๋กœ ์›น ์„œ๋ฒ„, DB, ์บ์‹œ ์„œ๋ฒ„ ์‰ฝ๊ฒŒ ๋„์›€
  3. ์ž๋™ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ• (CI/CD)
    • ๊นƒํ—ˆ๋ธŒ ํ‘ธ์‹œ → ๋„์ปค ์ด๋ฏธ์ง€ ๋นŒ๋“œ → ์„œ๋ฒ„ ์ž๋™ ๋ฐฐํฌ
  4. ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ์—ฐ๊ณ„
    • AWS ECS, EKS, GCP GKE ๋“ฑ์—์„œ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ์šด์˜

โœ… ์ •๋ฆฌ

  • Docker ์„ค์น˜๋Š” ํŒจํ‚ค์ง€ ์ค€๋น„ → ํ‚ค ๋“ฑ๋ก → ์ €์žฅ์†Œ ์ถ”๊ฐ€ → ์—”์ง„ ์„ค์น˜ ์ˆœ์„œ
  • ์„ค์น˜ ํ›„ docker run hello-world ๋กœ ์ •์ƒ ๋™์ž‘ ์—ฌ๋ถ€ ํ™•์ธ
  • ํ˜„์—…์—์„œ๋Š” ๊ฐœ๋ฐœํ™˜๊ฒฝ ํ†ต์ผ, ํ…Œ์ŠคํŠธ ์ž๋™ํ™”, ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์šด์˜์— ํ•„์ˆ˜

 

๋”๋ณด๊ธฐ

๐Ÿณ Ubuntu์—์„œ Docker ์„ค์น˜ ์š”์•ฝ

1. ์‚ฌ์ „ ์ค€๋น„

sudo apt-get update sudo apt-get install ca-certificates curl gnupg lsb-release

2. GPG ํ‚ค ์ถ”๊ฐ€

sudo mkdir -m 0755 -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
 

3. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋“ฑ๋ก

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" \ | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

4. Docker ์„ค์น˜

sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

5. ์„ค์น˜ ํ™•์ธ

docker # ๋ช…๋ น์–ด ํ™•์ธ 
systemctl status docker # ์‹คํ–‰ ์ƒํƒœ ํ™•์ธ 
docker version # ๋ฒ„์ „ ํ™•์ธ

6. ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž ๊ถŒํ•œ ์ถ”๊ฐ€

sudo usermod -aG docker $USER 
exit # ๋กœ๊ทธ์•„์›ƒ ํ›„ ๋‹ค์‹œ ๋กœ๊ทธ์ธ

7. ์ƒ˜ํ”Œ ์‹คํ–‰

docker run hello-world

๐Ÿ“Š ์„ค์น˜ ํ๋ฆ„ (Mermaid)

 
 

โœ… ํ˜„์—… ํ™œ์šฉ

  • ํŒ€์› ๋ชจ๋‘ ๊ฐ™์€ ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ณต์œ 
  • ํ…Œ์ŠคํŠธ/์šด์˜ ์„œ๋ฒ„์— ๋น ๋ฅธ ๋ฐฐํฌ
  • CI/CD ์ž๋™ํ™” (GitHub, Jenkins์™€ ์—ฐ๋™)
  • ํด๋ผ์šฐ๋“œ ์—ฐ๊ณ„ (AWS ECS/EKS, GCP GKE ๋“ฑ)

 

๋ฐ˜์‘ํ˜•