[Docker] ๐Ÿš€ ์šฐ๋ฆฌ ์กฐ์ง์˜ Docker ์ „ํ™˜๊ธฐ: ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์ปจํ…Œ์ด๋„ˆ๋กœ ๊ฐˆ์•„ํƒ„ ์ด์œ ์™€ ๊ธฐ๋ก-1

KIM Jongwanยท2024๋…„ 9์›” 12์ผ
0
post-thumbnail

์ €๋Š” ํšŒ์‚ฌ ๊ฐœ๋ฐœ ์กฐ์ง์ด ์˜จํ”„๋ ˆ๋ฏธ์Šค ํ™˜๊ฒฝ์—์„œ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ(Naver Cloud Platform, ์ดํ•˜ NCP)์œผ๋กœ ์ „ํ™˜์„ ์‹œ์ž‘ํ•˜๋˜ ์‹œ์ ์— ์ž…์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ์™„๋ฃŒ๋œ ์ดํ›„, ๊ธฐ์กด ์˜จํ”„๋ ˆ๋ฏธ์Šค ์ž์›์€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์œผ๋กœ ํ™œ์šฉ๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ์ฃ . ๊ทธ๋ฆฌ๊ณ  ์ตœ๊ทผ, ์ด ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ Docker ๊ธฐ๋ฐ˜ ์ปจํ…Œ์ด๋„ˆ ํ™˜๊ฒฝ์œผ๋กœ ์ „๋ฉด ์ „ํ™˜ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ด๋ฒˆ ์‹œ๋ฆฌ์ฆˆ์—์„œ๋Š” Docker ๋„์ž…์„ ๊ฒฐ์ •ํ•˜๊ฒŒ ๋œ ๊ณผ์ •๋ถ€ํ„ฐ ์‹ค์ œ ์ „ํ™˜๊นŒ์ง€์˜ ์—ฌ์ •์„ ๊ณต์œ ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿณ ์—ฌ๋Ÿฌ ๋Œ€์˜ ๊ฐœ๋ฐœ ์„œ๋ฒ„ ๋Œ€์‹ , ์™œ Docker์˜€์„๊นŒ?

ํ•œ๋™์•ˆ ์šฐ๋ฆฌ๋Š” ์‚ฌ๋‚ด์— ๋‚จ์•„์žˆ๋˜ ์—ฌ๋Ÿฌ ๋Œ€์˜ ๋ฌผ๋ฆฌ ์„œ๋ฒ„๋ฅผ ํ™œ์šฉํ•ด ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์šด์˜ํ•ด์™”์Šต๋‹ˆ๋‹ค. Windows Server, CentOS, VirtualBox ๋“ฑ ๋‹ค์–‘ํ•œ ์šด์˜์ฒด์ œ๋ฅผ ์ง์ ‘ ์„ค์น˜ํ•˜๊ณ  ๊ตฌ์„ฑํ•˜๋ฉฐ ํ”„๋กœ์ ํŠธ๋งˆ๋‹ค ํ™˜๊ฒฝ์„ ๋งž์ถ”๋Š” ๋ฐ ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ ์  ์„œ๋ฒ„๊ฐ€ ๋ณต์žกํ•ด์ง€๊ณ , ํ™˜๊ฒฝ์ด ๊ผฌ์ด๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ฐ€ ์–ด๋–ค ์„ค์ •์„ ํ–ˆ๋Š”์ง€ ๋ชจ๋ฅด๋Š” ์„œ๋ฒ„, ์ˆจ๊ฒจ์ง„ ๋ฐฑ์—… ๋ฐ์ดํ„ฐ, ํ”„๋กœ์ ํŠธ๋งˆ๋‹ค ๋‹ค๋ฅธ OS ์š”๊ตฌ์‚ฌํ•ญ...

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋“ค์„ ๊ฒช์œผ๋ฉฐ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ โ€œ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ฐ„๋‹จํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—†์„๊นŒ?โ€ ๋ผ๋Š” ๊ณ ๋ฏผ์„ ํ•˜๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Docker๋ฅผ ๋„์ž…ํ•˜๊ธฐ์— ์•ž์„œ, ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ๋‘ ๊ฐ€์ง€ ์„ ํƒ์ง€๋ฅผ ๋‘๊ณ  ๊ณ ๋ฏผํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ํ•˜๋‚˜๋Š” Windows์˜ Hyper-V๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์ „ํ†ต์ ์ธ ๊ฐ€์ƒ ๋จธ์‹  ๋ฐฉ์‹์ด๊ณ ,
  • ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” Docker๋ฅผ ํ™œ์šฉํ•œ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ํ™˜๊ฒฝ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

Hyper-V?

Hyper-V๋Š” ๊ฐ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์™„์ „ํžˆ ๋ถ„๋ฆฌ๋œ ๊ฐ€์ƒ ๋จธ์‹ ์œผ๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์–ด ์šด์˜์ฒด์ œ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๊ณ  ๋ณด์•ˆ์ ์œผ๋กœ๋„ ์•ˆ์ •์ ์ด๋ผ๋Š” ์žฅ์ ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ VM ํ•˜๋‚˜๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ์šด์˜์ฒด์ œ ์„ค์น˜๋ถ€ํ„ฐ ์†Œํ”„ํŠธ์›จ์–ด ์„ธํŒ…๊นŒ์ง€ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ณ , ๋ฆฌ์†Œ์Šค ์†Œ๋ชจ๋„ ์ƒ๋‹นํ•˜๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์—ฌ๋Ÿฌ ๋ช…์ด ๋™์‹œ์— ๋‹ค์–‘ํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์šด์˜ํ•ด์•ผ ํ•˜๋Š” ์šฐ๋ฆฌ ์กฐ์ง ๊ตฌ์กฐ์—์„œ๋Š” ๋น„ํšจ์œจ์ ์ธ ์„ ํƒ์ฒ˜๋Ÿผ ๋А๊ปด์กŒ์Šต๋‹ˆ๋‹ค.

Docker?

๋ฐ˜๋ฉด Docker๋Š” ์šด์˜์ฒด์ œ ์ˆ˜์ค€์—์„œ ๊ฒฉ๋ฆฌ๋œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ™œ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ํ›จ์”ฌ ๋น ๋ฅด๊ฒŒ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ณ  ์ž์› ์†Œ๋ชจ๋„ ํ›จ์”ฌ ์ ์—ˆ์Šต๋‹ˆ๋‹ค. ์šด์˜์ฒด์ œ์— ๊ด€๊ณ„์—†์ด ์ปจํ…Œ์ด๋„ˆ๋งŒ ์žˆ์œผ๋ฉด ๋ˆ„๊ตฌ๋“  ๋™์ผํ•œ ํ™˜๊ฒฝ์—์„œ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๊ณ , ์ด๋ฏธ์ง€๋กœ ๊ด€๋ฆฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐํฌ๋‚˜ ๋ณต๊ตฌ๋„ ์šฉ์ดํ•˜๋‹ค๋Š” ์ ์ด ํฐ ์žฅ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ ์šฐ๋ฆฌ๋Š” ๋ณด๋‹ค ๋น ๋ฅด๊ณ  ์œ ์—ฐํ•˜๋ฉฐ, ํ˜‘์—…์— ๊ฐ•ํ•œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋Š” Docker๋ฅผ ์„ ํƒํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ๋กœ ์ „ํ™˜์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์˜ˆ์ƒํ–ˆ๋˜ ์ด์  ์ด์ƒ์œผ๋กœ ํšจ์œจ์„ ์ฒด๊ฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ› ๏ธ Docker, ์ผ๋‹จ ์„ค์น˜๋ถ€ํ„ฐ ํ•ด๋ด…์‹œ๋‹ค

์•ž์„  ๊ธ€์— ์ด์–ด ์‹ค์ œ๋กœ Docker๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์‚ฌ์šฉํ•ด๋ณด๊ธฐ ์œ„ํ•œ ์ค€๋น„ ๊ณผ์ •์„ ์†Œ๊ฐœํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๋„์ž…์„ ๊ฒฐ์‹ฌํ•˜๊ธด ํ–ˆ์ง€๋งŒ, ์‚ฌ๋‚ด ๊ฐœ๋ฐœ ์ธ๋ ฅ ์ค‘ Docker์— ์ต์ˆ™ํ•œ ์‚ฌ๋žŒ์ด ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋จผ์ € ๊ธฐ๋ณธ์ ์ธ ์‚ฌ์šฉ๋ฒ•๋ถ€ํ„ฐ ์ตํž ํ•„์š”๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚ด๋ถ€์ ์œผ๋กœ ๋„์ปค, ์ปจํ…Œ์ด๋„ˆ ๋นŒ๋“œ์—…! (์ดํ˜„๋ฃก ์ง€์Œ)์ด๋ผ๋Š” ์ฑ…์„ ๊ตฌ๋งคํ•ด 2์ฃผ ์ •๋„ ํ•™์Šต์„ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ํฌ์ŠคํŠธ๋Š” ๊ทธ ํ•™์Šต ๋‚ด์šฉ์„ ํ† ๋Œ€๋กœ Docker ์„ค์น˜ ๊ณผ์ •์„ ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

๐Ÿง ์„ค์น˜ ํ™˜๊ฒฝ

Docker๋Š” ๋ฆฌ๋ˆ…์Šค ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ (LXC)์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, Linux ๊ธฐ๋ฐ˜์˜ ํ˜ธ์ŠคํŠธ OS๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ์„ค์น˜๋Š” ๊ธฐ๋ณธ์„œ์™€ ๋™์ผํ•˜๊ฒŒ Ubuntu 18.04 ํ™˜๊ฒฝ์—์„œ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ”ง ์„ค์น˜ ์ „ ์ค€๋น„ ๋‹จ๊ณ„

# 1. ํŒจํ‚ค์ง€ ๋ชฉ๋ก ์—…๋ฐ์ดํŠธ
$ sudo apt-get update

# 2. ์˜์กด์„ฑ ํŒจํ‚ค์ง€ ์„ค์น˜
$ sudo apt-get install -y \
  apt-transport-https \
  ca-certificates \
  curl \
  software-properties-common

# 3. Docker ๊ณต์‹ GPG ํ‚ค ์ถ”๊ฐ€
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# (์„ ํƒ) GPG ํ‚ค ํ™•์ธ
$ sudo apt-key fingerprint

# 4. Docker ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ถ”๊ฐ€
$ sudo add-apt-repository \
  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable"

# 5. ํŒจํ‚ค์ง€ ๋ชฉ๋ก ์—…๋ฐ์ดํŠธ (๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ถ”๊ฐ€ ํ›„)
$ sudo apt-get update

๐Ÿ“ ๊ฐ ๋‹จ๊ณ„ ์„ค๋ช…

1. ํŒจํ‚ค์ง€ ๋ชฉ๋ก ์—…๋ฐ์ดํŠธ
apt-get update๋กœ ์‹œ์Šคํ…œ์— ๋“ฑ๋ก๋œ ํŒจํ‚ค์ง€ ๋ชฉ๋ก์„ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

2. Docker ์˜์กด์„ฑ ํŒจํ‚ค์ง€ ์„ค์น˜

  • apt-transport-https: HTTPS๋ฅผ ํ†ตํ•œ ํŒจํ‚ค์ง€ ๋‹ค์šด๋กœ๋“œ ์ง€์›
  • ca-certificates: ๋ณด์•ˆ ์ธ์ฆ์„œ ๊ฒ€์ฆ์šฉ
  • curl: URL ๊ธฐ๋ฐ˜ ๋‹ค์šด๋กœ๋“œ ๋„๊ตฌ
  • software-properties-common: PPA ์ถ”๊ฐ€/๊ด€๋ฆฌ์šฉ ๋„๊ตฌ

3. GPG ํ‚ค ๋“ฑ๋ก
Docker์—์„œ ์ œ๊ณตํ•˜๋Š” GPG ํ‚ค๋ฅผ ๋“ฑ๋กํ•ด ์„ค์น˜ ํŒจํ‚ค์ง€์˜ ์‹ ๋ขฐ์„ฑ์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.

4. Docker ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ถ”๊ฐ€
Ubuntu ๊ธฐ๋ณธ ์ €์žฅ์†Œ์—๋Š” Docker์˜ ์ตœ์‹  ๋ฒ„์ „์ด ์—†์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ๊ณต์‹ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋”ฐ๋กœ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.

5. ํŒจํ‚ค์ง€ ๋ชฉ๋ก ์žฌ์—…๋ฐ์ดํŠธ
๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์œผ๋‹ˆ ๋‹ค์‹œ ์—…๋ฐ์ดํŠธํ•ด์ค๋‹ˆ๋‹ค.


๐Ÿ“ฆ Docker ์„ค์น˜ ๋ฐ ๊ถŒํ•œ ์„ค์ •

# Docker ์„ค์น˜
sudo apt-get -y install docker-ce

# (์„ ํƒ) ํŠน์ • ๋ฒ„์ „ ์„ค์น˜
# sudo apt-get install docker-ce=20.10.10

# ์„ค์น˜ ํ™•์ธ
docker version

# ํ˜„์žฌ ์‚ฌ์šฉ์ž์—๊ฒŒ Docker ๊ถŒํ•œ ๋ถ€์—ฌ
sudo usermod -aG docker $(whoami)

# Docker ์žฌ์‹œ์ž‘
sudo service docker restart

์„ค์น˜ ํ›„์—๋Š” ๋‹ค์‹œ ๋กœ๊ทธ์ธํ•˜๊ฑฐ๋‚˜ ํ„ฐ๋ฏธ๋„์„ ์žฌ์‹œ์ž‘ํ•˜๋ฉด sudo ์—†์ด๋„ docker ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ… ๋งˆ๋ฌด๋ฆฌ

์ด์ œ Docker๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ณธ ํ™˜๊ฒฝ์ด ๊ฐ–์ถฐ์กŒ์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ ๊ธ€์—์„œ๋Š” ๊ฐ„๋‹จํ•œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•ด๋ณด๋ฉฐ Docker์˜ ๋™์ž‘ ๋ฐฉ์‹์„ ํ…Œ์ŠคํŠธํ•ด๋ณผ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

profile
3๋…„์ฐจ ๋ฐฑ์•ค๋“œ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€