๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ
๐Ÿคท๐Ÿผ‍โ™€๏ธ Etc.../- linux, aws, docker, k8s

[Docker] ๋„์ปค ์—”์ง„์„ ๊ตฌ์„ฑํ•˜๋Š” ๋„์ปค ์ด๋ฏธ์ง€์™€ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ. ๊ทธ๋ฆฌ๊ณ  Nginx๋ฅผ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋กœ ๋„์›Œ๋ณด์ž.

by Wonit 2020. 11. 29.

์šฐ๋ฆฌ๋Š” ์™œ ๋„์ปค๋ฅผ ๋ฐฐ์›Œ์•ผ ํ•˜๋Š”์ง€ ์ง€๋‚œ ์‹œ๊ฐ„์— ์•Œ์•„๋ณด์•˜๋‹ˆ ์ด์ œ ๋„์ปค์˜ ์„ธ๊ณ„์— ๋Œ€ํ•ด ๋” ๊นŠ๊ฒŒ ๋“ค์–ด๊ฐ€๋ณด์ž.

 

๋„์ปค๋Š” ์ง€๋‚œ ์‹œ๊ฐ„์— ์ด์•ผ๊ธฐ ํ–ˆ๋“ฏ์ด ํ•˜๋‚˜์˜ ๋ฆฌ๋ˆ…์Šค ์ปจํ…Œ์ด๋„ˆ์ด๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ๋„์ปค๋ฅผ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ๋กœ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๊ฒŒ ๋œ๋‹ค๋ฉด ์‹ค์งˆ์ ์œผ๋กœ๋Š” ๋„์ปค ์—”์ง„์„ ๋‹ค์šด๋ฐ›๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ๋„์ปค๋ฅผ ์ด์šฉํ•ด์„œ ์ธํ”„๋ผ๋ฅผ ๊ตฌ์ถ•ํ•œ๋‹ค๊ฑฐ๋‚˜ ๊ฐœ๋ฐœ์„ ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์ •ํ™•ํžˆ ๋ง ํ•˜์ž๋ฉด *_๋„์ปค ์—”์ง„์„ ์ด์šฉํ•ด์„œ *_์ธํ”„๋ผ๋ฅผ ๊ตฌ์ถ•ํ•œ๋‹ค๊ฑฐ๋‚˜ ๊ฐœ๋ฐœ์„ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

๊ทธ๋Ÿผ ๊ฒฐ๋ก ์€ ์šฐ๋ฆฐ ๋„์ปค ์—”์ง„์— ๋Œ€ํ•ด์„œ ์•Œ์•„์•ผ ํ•œ๋‹ค.

๋„์ปค ์—”์ง„

์‚ฌ์‹ค ๋„์ปค ์ด๋ฏธ์ง€์™€ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋Š” ์ง€๊ธˆ ์„ค๋ช…ํ•  ๋‚ด์šฉ๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋ณต์žกํ•˜๊ณ  ์•„๋ฆ„๋‹ต์ง€๋งŒ ๋‹น์žฅ ์ด ๋ชจ๋“  ๊ฒƒ์„ ์ดํ•ดํ•˜๋ ค ํ•œ๋‹ค๋ฉด ๋‹น์žฅ ๋„๋ง๊ฐˆ ๊ฒƒ์ด๋‹ค.

 

๊ทธ๋ž˜์„œ ์ด๋ฒˆ ์‹œ๊ฐ„์— ๋„์ปค ์ด๋ฏธ์ง€๊ฐ€ ๋ญ๊ณ  ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ดํ•ดํ•˜๊ณ  ๊ฐ€๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ์ถฉ๋ถ„ํ•˜๋‹ค.

 

๊ทธ๋Ÿผ ๋‹ค์Œ์— ์žˆ์„ ๋„์ปค ๊ด€๋ จ ํฌ์ŠคํŒ…์„ ์ข€ ๋” ์ˆ˜์›”ํ•˜๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

๋„์ปค ์ด๋ฏธ์ง€

๋„์ปค ์ด๋ฏธ์ง€๋Š” ์‰ฝ๊ฒŒ ์ƒ๊ฐํ•˜๋ฉด ์šฐ๋ฆฌ๊ฐ€ vmware์—์„œ ๊ฐ€์ƒ ๋จธ์‹ ์„ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ISO ํŒŒ์ผ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

 

ํ•ด๋‹น ์ด๋ฏธ์ง€๋ฅผ ํ† ๋Œ€๋กœ ์šฐ๋ฆฌ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๊ณ  ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

์ด๋ฏธ์ง€ ๊ตฌ์„ฑ

์ด๋ฏธ์ง€๋Š” 3๊ฐœ์˜ ํŒŒํŠธ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

  • ์ €์žฅ์†Œ
  • ์ด๋ฏธ์ง€ ์ด๋ฆ„
  • ํƒœ๊ทธ

์ €์žฅ์†Œ
์ด๋ฏธ์ง€๊ฐ€ ์ €์žฅ๋œ ์ €์žฅ์†Œ๋กœ ๋„์ปค ํ—ˆ๋ธŒ์˜ ๊ณต์‹ ์ด๋ฏธ์ง€๋ฅผ ๋œปํ•œ๋‹ค.


์ƒ๋žตํ•ด๋„ ๋˜๋Š” ์ •๋ณด๋ผ ์ƒ๋žตํ•ด์„œ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

 

์ด๋ฏธ์ง€ ์ด๋ฆ„
ํ•ด๋‹น ์ด๋ฏธ์ง€๊ฐ€ ์–ด๋–ค ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋Š”์ง€ ๋‚˜ํƒ€๋‚ธ๋‹ค.

 

ํƒœ๊ทธ
์ด๋ฏธ์ง€์˜ ๋ฒ„์ „ ๊ด€๋ฆฌ๋‚˜ ํƒœ๊น…์„ ํ†ตํ•ด ๋ช…์‹œํ•˜๋Š” ๋ฒ„์ „์„ ๋‚˜ํƒ€๋‚ผ ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๊ณ  ๋งŒ์•ฝ ์ƒ๋žตํ•˜๋ฉด ๋„์ปค ์—”์ง„์€ ๊ฐ€์žฅ ์ตœ์‹ ์˜ latest๋กœ ์ธ์‹ํ•œ๋‹ค.

์ข‹์€ ๋„์ปค ์ด๋ฏธ์ง€

์ด๋Ÿฐ ๋„์ปค ์ด๋ฏธ์ง€์—๋Š” ์ข‹์€ ๋„์ปค ์ด๋ฏธ์ง€๊ฐ€ ๊ฐ–๋Š” ํŠน์„ฑ์ด ์žˆ๋‹ค.

  1. Working
  2. Minimal
  3. WhiteBox
    ์ด์™€ ๊ด€๋ จ๋œ ์ •๋ณด๋Š” ์ข‹์€ ๋„์ปค ์ด๋ฏธ์ง€ ๋งŒ๋“ค๊ธฐ๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด ์ข‹์„๋“ฏ ํ•˜๋‹ค.

๋„์ปค ์ปจํ…Œ์ด๋„ˆ

๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ž€ ์œ„์—์„œ ๋ง ํ•˜๋Š” ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ง€๊ณ  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ๊ทธ๊ฒŒ ๋ฐ”๋กœ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

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

 

๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฐ๊ฐ์˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ์›€์ง์ด๊ธฐ ๋•Œ๋ฌธ์— ๋™์ผํ•œ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•ด๋„ ์„œ๋กœ ๋‹ค๋ฅธ ์ปจํ…Œ์ด๋„ˆ๋Š” ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๊ณ  ํ˜ธ์ŠคํŠธ PC ๋˜ํ•œ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•˜๋‚˜์˜ Nginx ์ด๋ฏธ์ง€๋กœ 3๋Œ€์˜ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž

๊ทธ๋Ÿฐ๋ฐ ๋งŒ์•ฝ Container1๋ฒˆ์—์„œ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค!

๊ทธ๋Ÿผ Docker Container 1๋ฒˆ์—๋งŒ ์˜ํ–ฅ์ด ์žˆ๊ณ  ๋‚˜๋จธ์ง€ 2 3๋ฒˆ์—๋Š” ๋ฌธ์ œ ์—†์ด ๋Œ์•„๊ฐ€๊ฒŒ ๋œ๋‹ค.

๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑํ•˜๊ธฐ

์ž ๊น์˜ ๋ง›๋ณด๊ธฐ๋กœ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•ด๋ณด์ž.


๊ทผ๋ฐ ์•„๋ฌด ๋ชฉ์  ์—†์ด ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค๋ฉด ๊ฝค๋‚˜ ๋ฌด์˜๋ฏธํ•œ ์‹œ๊ฐ„์ด ๋  ๊ฒƒ์ด๋‹ˆ Nginx๋ฅผ ๋„์ปค ์ปจํ…Œ์ด๋„ˆํ™” ํ•ด์„œ ์—ด์–ด๋ณด์ž!

 

์•„๋งˆ ์ˆœ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๊ฒƒ์ด๋‹ค.

  1. dockerhub ์ ‘์†
  2. nginx ์ด๋ฏธ์ง€ pull
  3. nginx ์ด๋ฏธ์ง€๋กœ docker ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰์‹œํ‚ค๊ธฐ
  4. curl ํ…Œ์ŠคํŠธdockerhub ์ ‘์†

dockerhub ์ ‘์†

์šฐ์„  nginx ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œ๋ฐ›๊ธฐ ์œ„ํ•ด dockerhub์— ์ ‘์†ํ•˜๊ณ .

 

nginx์˜ ์ด๋ฏธ์ง€ ์ด๋ฆ„์„ ํ†ตํ•ด ์ด๋ฏธ์ง€๋ฅผ ๋‚ด EC2 ์ธ์Šคํ„ด์Šค๋กœ ๊ฐ€์ ธ์™€๋ณด์ž.

 

๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด์„œ nginx ์ด๋ฆ„์„ ์•Œ์•„์•ผ ํ•˜๋ฏ€๋กœ ๊ฒ€์ƒ‰์ฐฝ์— nginx๋ผ๊ณ  ๊ฒ€์ƒ‰ํ•œ๋‹ค.

nginx ์ด๋ฏธ์ง€ pull

๊ทธ๋Ÿผ ๊ฒฐ๊ณผ๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.

์šฐ์ธก์— ๋ณด๋ฉด ๊ฒ€์ • ๋ฐฐ๊ฒฝ์— docker pull nginx๋ผ๋Š” ๋ช…๋ น์–ด๊ฐ€ ์žˆ๋‹ค.

 

์ด๋Š” nginx ์ด๋ฏธ์ง€๋ฅผ ์ตœ์‹ ๋ฒ„์ „์œผ๋กœ pullํ•˜๊ฒ ๋‹ค๋Š” ๋œป์ด๋‹ค.

 

๊ทธ๋Ÿผ ์šฐ๋ฆฌ์˜ ํ„ฐ๋ฏธ๋„๋กœ ๋Œ์•„๊ฐ€ nginx๋ฅผ pull ํ•ด๋ณด์ž.

nginx ์ด๋ฏธ์ง€๋กœ docker ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰์‹œํ‚ค๊ธฐ

nginx๊ฐ€ ๋ญ”์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค๋ฉด nginx๋ž€ ๋ฌด์—‡์ด๊ณ  ์™œ ๋ฐฐ์›Œ์•ผ ํ•˜๋Š”๊ฐ€?์—์„œ ํ™•์ธํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค.


nginx๋Š” ์›น์„œ๋ฒ„์ด๊ธฐ ๋•Œ๋ฌธ์— ํฌํŠธ ๋ฐ”์ธ๋”ฉ์„ ํ†ตํ•ด ์™ธ๋ถ€๋กœ ๋…ธ์ถœ์‹œ์ผœ์•ผ ํ•œ๋‹ค.


๋‹ค์Œ ์‹œ๊ฐ„์— ๋” ์ž์„ธํžˆ ๋ฐฐ์šธ ๊ฒƒ์ด์ง€๋งŒ ์ผ๋‹จ์€ ๋”ฐ๋ผ์น˜๋Š” ๊ฒƒ์œผ๋กœ ์˜ˆ์ œ๋ฅผ ๋งˆ๋ฌด๋ฆฌ ํ•ด๋ณด์ž.

> $ docker run --name my-nginx -d -p 8080:80 nginx

์œ„์—์„œ ์‚ฌ์šฉํ•œ ๊ฒƒ์€ run ๋ช…๋ น์–ด์ธ๋ฐ, ๊ฒ๋จน์ง€ ๋ง์ž.


๊ทธ๋ƒฅ ์ง€๊ธˆ์€ ๋„์ปค๊ฐ€ ๋ญ”์ง€ ๋Š๋ผ๋Š”๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ •ํ™•ํžˆ ๋‹ค ์•Œ์ง€ ๋ชปํ•ด๋„ ๋œ๋‹ค.


๋‹ค์Œ ์‹œ๊ฐ„์— ๋‹ค ๋ถ„์„ํ•˜๊ณ  ์—ฌ๋Ÿฌ๋ถ„๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋‹ˆ ๊ทธ๋ƒฅ ๋”ฐ๋ผ ์น˜๊ณ  ๋Š๋‚Œ๋งŒ ์‚ด๋ ค๋ณด์ž.

๊ทธ๋Ÿผ ์„ฑ๊ณต์ ์œผ๋กœ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜์—ˆ๋‹ค.

 

์ด์ œ ๋งˆ์ง€๋ง‰์œผ๋กœ ํ…Œ์ŠคํŠธ๋งŒ ํ•ด๋ณด์ž.

curl ํ…Œ์ŠคํŠธdockerhub ์ ‘์†

> $ sudo curl http://localhost:8080

์œผ๋กœ ์ ‘์†ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ฑ๊ณต์ ์œผ๋กœ Nginx๋กœ ๋งŒ๋“ค์–ด์ง„ ๋„์ปค๊ฐ€ ์ž˜ ์˜ฌ๋ผ์™”์Œ์„ ์•Œ ์ˆ˜ ์žˆ๊ณ , docker ps๋กœ๋„ ์ž˜ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋Œ“๊ธ€