CS/Network

[๋„คํŠธ์›Œํฌ] ๋„์ปค(Docker)๋ž€?

๊ฐœ๋ฐœ๊ฐœ๊ตด๐Ÿธ 2022. 7. 27. 19:45

๋„์ปค๋ž€?

๋„์ปค๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹ ์†ํ•˜๊ฒŒ ๊ตฌ์ถ•, ํ…Œ์ŠคํŠธ ๋ฐ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.

  • Go์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ๋ฆฌ๋ˆ…์Šค ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ๊ฐ€์ƒํ™” ํ”Œ๋žซํผ
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ํ™˜๊ฒฝ์„ ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Œ
  • OS๋ฅผ ๊ณต์œ , ๊ฒฉ๋ฆฌํ™”ํ•˜์—ฌ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ

์ฆ‰, ๋„์ปค๋Š” ๋…๋ฆฝ๋œ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด์„œ ํ•˜๋“œ์›จ์–ด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•˜๋Š” ๊ธฐ์ˆ ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Docker๋Š” ํ˜„์žฌ ๋งŽ์€ ์„œ๋น„์Šค์—์„œ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ๊ธฐ์ˆ ๋กœ์„œ ํŠนํžˆ *MSA์˜ ๋‹จ์ ์ธ ๊ด€๋ฆฌ์˜ ๋ณต์žก์„ฑ์„ ํ•ด๊ฒฐํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ์„œ๋น„์Šค์˜ ์ปจํ„ฐ์ด๋„ˆํ™”๊ฐ€ ์ด๋ฃจ์–ด์ง€๋ฉฐ Docker์™€ Kubernetes๊ฐ€ ๋งŽ์ด ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

*MSA : ์„œ๋น„์Šค๊ฐ„์˜ ์˜์กด์„ฑ์„ ์—†์• ๊ณ  ๊ธฐ๋Šฅ์„ ์ชผ๊ฐœ๋Š” ๊ฒƒ์„ ์ค‘์ ์ ์œผ๋กœ ์„ค๊ณ„ํ•œ ์•„ํ‚คํ…์ฒ˜


๊ฐ€์ƒํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

๊ฐ€์ƒํ™”๋ž€ ํ•˜๋‚˜์˜ ํ•˜๋“œ์›จ์–ด๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ€์ƒ ๋จธ์‹ ์œผ๋กœ ๋ถ„ํ• ํ•ด ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.

 

CPU์˜ ์‚ฌ์šฉ๋ฅ ์ด ๋‚ฎ์€ ์„œ๋ฒ„๋“ค์€ ๋ฆฌ์†Œ์Šค ๋‚ญ๋น„์ด๊ณ  ๊ทธ๋ ‡๋‹ค๊ณ  ๋ชจ๋“  ์„œ๋น„์Šค๋ฅผ ํ•œ ์„œ๋ฒ„์•ˆ์— ์˜ฌ๋ฆฐ๋‹ค๋ฉด ์•ˆ์ •์„ฑ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ •์„ฑ์„ ๋†’์ด๋ฉฐ ๋ฆฌ์†Œ์Šค๋„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„ ๊ฐ€์ƒํ™”๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


๋ฆฌ๋ˆ…์Šค ์ปจํ…Œ์ด๋„ˆ๋ž€?

์ปจ๋ฐ์ด๋„ˆ๋Š” ๊ฐ€์ƒํ™” ๊ธฐ์ˆ  ์ค‘ ํ•˜๋‚˜๋กœ ๋Œ€ํ‘œ์ ์œผ๋กœ LXC(Linux Container)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๊ฐ€์ƒํ™” ๊ธฐ์ˆ  vs ๋„์ปค ๊ฐ€์ƒํ™” ํ”Œ๋žซํผ

  • Legacy
    • ํ•˜๋‚˜์˜ ๋ฌผ๋ฆฌ ์„œ๋ฒ„์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ
    • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ฐ„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ๋ฏธ๋“ค์›จ์–ด ๋ฒ„์ „์˜ ์ถฉ๋Œ์ด ๋ฐœ์ƒ ํ•  ์ˆ˜ ์žˆ์Œ
  • Hosted Hypervisor(๊ฐ€์ƒํ™” ์†Œํ”„ํŠธ์›จ์–ด)
    • *Host OS ์œ„์— ๊ฐ€์ƒํ™” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์„ค์น˜ํ•ด์„œ ๊ฐ€์ƒํ™˜๊ฒฝ ๊ตฌ์ถ•
    • ๊ฐ„ํŽธํ•ด์„œ ํด๋ผ์ด์–ธํŠธ PC ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๊ฑฐ๋‚˜ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์ฃผ๋กœ ์‚ฌ์šฉ
    • ์ปจํ…Œ์ดํ„ฐ์™€ ๋‹ค๋ฅด๊ฒŒ *Guest OS๊ฐ€ ์กด์žฌํ•˜์—ฌ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋น„๊ต์  ํผ
  • Bare Metal Hypervisor
    • Host OS ์—†์ด ํ•˜๋“œ์›จ์–ด์— ์ง์ ‘ ํ•˜์ดํผ๋ฐ”์ด์ €๋ฅผ ์„ค์น˜
    • Host OS๊ฐ€ ์—†์–ด ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
    • ๊ฐ€์ƒ ๋จธ์‹ ๋“ค์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ฝ˜์†”์ด ํ•„์š”
  • Container
    • Guest OS๊ฐ€ ์—†๊ณ  Host OS์˜ ์ปค๋„์„ ๊ณต์œ ํ•˜์—ฌ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ ๊ณ  ๊ฐ€๋ฒผ์›Œ์„œ ๋น ๋ฆ„
    • OS ์‹คํ–‰ ์—†์ด ๋ณ„๋„์˜ ํ™˜๊ฒฝ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰์ด ๊ฐ€๋Šฅ (๊ฐ€์ƒ์˜ OS๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์Œ)
    • ์ด์ง์„ฑ๊ณผ ํ™•์ •์„ฑ์ด ๋†’์Œ

*Host OS : ๋ฒ ์ด์Šค๊ฐ€ ๋˜๋Š” ๊ธฐ์กด ํ™˜๊ฒฝ

*Guest OS : ๊ฐ€์ƒ ๋จธ์‹ ์œผ๋กœ ๋ถ„ํ• ๋œ ๊ฐ๊ฐ์˜ ํ™˜๊ฒฝ

 

 

๊ฐ๊ฐ์˜ ์žฅ๋‹จ์ ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ƒํ™ฉ์— ๋งž๊ฒŒ ์•Œ๋งž์€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๋„์ปค๋Š” ์ปจํ…Œ์ดํ„ฐ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.


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

๋„์ปค ์ด๋ฏธ์ง€๋ž€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์‹คํ–‰ํŒŒ์ผ, ์„ค์ • ๊ฐ’ ๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๋Š” Base ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€๋Š” ๋ ˆ์ด์–ด๋ผ๋Š” ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š”๋ฐ, ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์ƒ๊ธฐ๋ฉด ์ƒˆ๋กœ์šด ๋ ˆ์ด์–ด๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ๊ธฐ๋กํ•˜๋Š”๋ฐ, ์ด๋Ÿฌํ•œ ์ด๋ฏธ์ง€๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ํ”„๋กœ์„ธ์Šค, ์ฆ‰ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

์•„๋ž˜์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด Image๋ฅผ ์ปจํ…Œ์ด๋„ˆ์— ๋‹ด๊ณ  ์‹คํ–‰ํ•˜๋ฉด ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์ž‘ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ubuntu ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด Layer A, B, C๊ฐ€ ๋“ค์–ด๊ฐ
  • nginx ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค ๋• ์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ ubuntu ์ด๋ฏธ์ง€๋ฅผ ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€๋กœ ์‚ฌ์šฉํ•˜์—ฌ nginx๊ฐ€ ๋”ํ•ด์ง
  • web app ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค ๋• ์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ nginx ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€์— web app์„ ์˜ฌ๋ ค์„œ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ฆ 

๋”ฐ๋ผ์„œ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฏธ์ง€ ์ „์ฒด๋ฅผ ์ƒˆ๋กœ ๋ฐ›์ง€ ์•Š๊ณ  ํ•ด๋‹น ๋ ˆ์ด์–ด๋งŒ ๋ฐ›๋Š” ๊ฒƒ์œผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


Docker Hub & Docker Registry

Docker Hub

์ด๋ฏธ์ง€๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•ด์ค๋‹ˆ๋‹ค.

์œ„์˜ ๊ทธ๋ฆผ์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ์ด๋ฏธ ๋งŽ์€ ํšŒ์‚ฌ๋“ค์ด Docker๋กœ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋ฐฐํฌํ•˜๊ณ  ์žˆ์–ด ๊ณต๊ฐœ ์ด๋ฏธ์ง€๋“ค์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Docker Hub๋ฅผ ์ด์šฉํ•˜๋ฉด ์ด๋Ÿฌํ•œ ๊ณต๊ฐœ ์ด๋ฏธ์ง€๋“ค์„ ์†์‰ฝ๊ฒŒ pull ๋ฐ›์•„ ์ปจํ…Œ์ด๋„ˆ์— ์ ์šฉ ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Docker Registry

Docker Hub์ฒ˜๋Ÿผ ๊ณต๊ฐœ๋œ ๋ฐฉ์‹์ด ์•„๋‹Œ ๋น„๊ณต๊ฐœ์ ์œผ๋กœ ๊ฒฉ๋ฆฌ๋œ ์ €์žฅ์†Œ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


Docker Architecture


Docker Container Lifcycle


[์ฐธ๊ณ ]

https://aws.amazon.com/ko/docker/

 

Docker๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? | AWS

Q: Docker๋กœ ์–ด๋–ค ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? Docker๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ™˜๊ฒฝ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹ ์†ํ•˜๊ฒŒ ๋ฐฐํฌ ๋ฐ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ฝ”๋“œ๊ฐ€ ๋ฌธ์ œ์—†์ด ์‹คํ–‰๋  ๊ฒƒ์ž„์„ ํ™•์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” Doc

aws.amazon.com

https://hanamon.kr/%EB%8F%84%EC%BB%A4%EB%9E%80-docker-%ED%95%84%EC%9A%94%EC%84%B1/

 

๋„์ปค(Docker)๋ž€? - ํ•„์š”์„ฑ - ํ•˜๋‚˜๋ชฌ

๋„์ปค(Docker)๋ž€ ๋ฌด์—‡์ด๋ฉฐ, ๋„์ปค๊ฐ€ ํ•„์š”ํ•œ ์ƒํ™ฉ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ์•Œ์•„๋ณผ ์ฃผ์š” ์šฉ์–ด๋กœ๋Š” ๋ฆฌ๋ˆ…์Šค ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ , ์‹คํ–‰ ํ™˜๊ฒฝ, ๊ฒฉ๋ฆฌํ™” ๋“ฑ์ด ์žˆ๋‹ค. โ—๏ธ๋„์ปค(Docker)๋ž€? ๋„์ปค(Docker)๋Š” *๋ฆฌ๋ˆ…์Šค ์ปจํ…Œ์ด๋„ˆ(Linux

hanamon.kr

https://khj93.tistory.com/entry/Docker-Docker-%EA%B0%9C%EB%85%90

 

[Docker] Docker์˜ ๊ฐœ๋… ๋ฐ ํ•ต์‹ฌ ์„ค๋ช…

  Docker๋ž€ Go์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ๋ฆฌ๋ˆ…์Šค ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜์œผ๋กœํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ๊ฐ€์ƒํ™” ํ”Œ๋žซํผ์ด๋‹ค. ํ˜„์žฌ Docker 0.9๋ฒ„์ „ ๋ถ€ํ„ฐ๋Š” ์ง์ ‘ ๊ฐœ๋ฐœํ•œ libcontainer ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.  ๊ฐ€์ƒํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

khj93.tistory.com

https://velog.io/@markany/%EB%8F%84%EC%BB%A4%EC%97%90-%EB%8C%80%ED%95%9C-%EC%96%B4%EB%96%A4-%EA%B2%83-1.-%EB%8F%84%EC%BB%A4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

 

๋„์ปค์— ๋Œ€ํ•œ ์–ด๋–ค ๊ฒƒ : 1. ๋„์ปค๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

๊ฐœ๋ฐœํŒ€, ์šด์˜ํŒ€ ๊ฐ€๋ฆฌ์ง€ ์•Š๊ณ  ๋ˆ„๊ตฌ๋‚˜ ์ข‹์•„ํ•˜๋Š” ๋„์ปค๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”?

velog.io