[Docker] Docker๋ž€?

Lee ๐Ÿง™๐Ÿปโ€โ™‚๏ธยท2021๋…„ 8์›” 24์ผ
0
post-thumbnail

๐Ÿ’ก Docker

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

์ด๋ ‡๊ฒŒ ์ƒ์„ฑ๋œ container๋Š” back-end, DB, server, message queue๋“ฑ ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ๋„ container๋กœ ์ถ”์ƒํ™”ํ•  ์ˆ˜ ์žˆ๊ณ  ์กฐ๋ฆฝPC, AWS, Azure, Google cloud๋“ฑ ์–ด๋””์—์„œ๋“  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ Container๋Š” ๋ฌด์—‡์ธ๊ฐ€?๐Ÿคท๐Ÿปโ€โ™‚๏ธ

๐Ÿคท๐Ÿปโ€โ™‚๏ธ Container?

container์˜ ๊ฐœ๋…์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ทธ ์‹คํ–‰์— ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๋ฐ”์ด๋„ˆ๋ฆฌ, ๊ตฌ์„ฑ ํŒŒ์ผ ๋“ฑ์„ ํŒจํ‚ค์ง€๋กœ ๋ฌถ์–ด ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋…ธํŠธ๋ถ-ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ-์‹ค์ œ ์šด์˜ํ™˜๊ฒฝ์œผ๋กœ ๋ฐ”๋€Œ์–ด๋„ ์‹คํ–‰์— ํ•„์š”ํ•œ ํŒŒ์ผ์ด ํ•จ๊ป˜ ๋”ฐ๋ผ๋‹ค๋‹ˆ๋ฏ€๋กœ ์˜ค๋ฅ˜๋ฅผ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šด์˜์ฒด์ œ๋ฅผ ์ œ์™ธํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰์— ํ•„์š”ํ•œ ๋ชจ๋“  ํŒŒ์ผ์„ ํŒจํ‚ค์ง•ํ•œ๋‹ค๋Š” ์ ์—์„œ ์šด์˜์ฒด์ œ ์œ„์—์„œ ๊ตฌํ˜„๋œ ๊ฐ€์ƒํ™”, ์ฆ‰ '์šด์˜์ฒด์ œ ๋ ˆ๋ฒจ ๊ฐ€์ƒํ™”'๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆ๋Š” VM๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ ๊ฒฉ๋ฆฌ ์†์„ฑ์„ ์™„ํ™”ํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ„์— ์šด์˜์ฒด์ œ(OS)๋ฅผ ๊ณต์œ ํ•˜๋ฏ€๋กœ ๊ฐ๊ฐ์˜ ์ปจํ…Œ์ด๋„ˆ๋Š” ๋ณด๋‹ค ๊ฐ€๋ณ์Šต๋‹ˆ๋‹ค.

๊ธฐ์กด ๊ฐ€์ƒ ๋จธ์‹ ๊ณผ์˜ ์ฐจ์ด

๐Ÿคท๐Ÿปโ€โ™‚๏ธ Docker Images?


๋„์ปค์—์„œ ์„œ๋น„์Šค ์šด์˜์— ํ•„์š”ํ•œ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ, ์†Œ์Šค์ฝ”๋“œ ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์ปดํŒŒ์ผ๋œ ์‹คํ–‰ ํŒŒ์ผ์„ ๋ฌถ๋Š” ํ˜•ํƒœ๋ฅผ Docker Images๋ผ ํ•œ๋‹ค. ๋‹ค์‹œ ๋งํ•ด, ํŠน์ • ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ(์ฆ‰, ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ(์‹คํ–‰)์— ํ•„์š”ํ•œ) ๋ชจ๋“  ํŒŒ์ผ๊ด€ ์„ค์ •๊ฐ’(ํ™˜๊ฒฝ)์„ ์ง€๋‹Œ ๊ฒƒ์œผ๋กœ, ๋” ์ด์ƒ์˜ ์˜์กด์„ฑ ํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•˜๊ฑฐ๋‚˜ ์ด๊ฒƒ์ €๊ฒƒ ์„ค์น˜ ํ•  ํ•„์š” ์—†๋Š” ์ƒํƒœ์˜ ํŒŒ์ผ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด Ubuntu์ด๋ฏธ์ง€๋Š” Ubuntu๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ํŒŒ์ผ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, Oracle์ด๋ฏธ์ง€๋Š” Oracle์„ ์‹คํ–‰ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ํŒŒ์ผ๊ณผ ์‹คํ–‰๋ช…๋ น์–ด, port์ •๋ณด ๋“ฑ์„ ๋ชจ๋‘ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

  1. ๋”ฐ๋ผ์„œ Docker Images์˜ ์šฉ๋Ÿ‰์€ ๋ณดํ†ต ์ˆ˜๋ฐฑMB ~ ์ˆ˜GB๊ฐ€ ๋„˜๋Š”๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ€์ƒ๋จธ์‹ ์˜ ์ด๋ฏธ์ง€์— ๋น„ํ•˜๋ฉด ๊ต‰์žฅํžˆ ์ ์€ ์šฉ๋Ÿ‰์ด๋‹ค.
  2. ์ด๋ฏธ์ง€๋Š” ์ƒํƒœ ๊ฐ’์„ ๊ฐ€์ง€์ง€ ์•Š๊ณ  ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.(Immutable)
  3. ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€๋Š” ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ณ , ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‚ญ์ œ๋˜๋”๋ผ๋„ ์ด๋ฏธ์ง€๋Š” ๋ณ€ํ•˜์ง€ ์•Š๊ณ  ๊ทธ๋Œ€๋กœ ๋‚จ์•„ ์žˆ์Œ.
  4. Docker Images๋Š” github์™€ ์œ ์‚ฌํ•œ ์„œ๋น„์Šค์ธ DockerHub์„ ํ†ตํ•ด ๋ฒ„์ „ ๊ด€๋ฆฌ ๋ฐ ๋ฐฐํฌ(push&oull)๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
  5. ๋‹ค์–‘ํ•œ API๊ฐ€ ์ œ๊ณต๋˜์–ด ์›ํ•˜๋Š” ๋งŒํผ ์ž๋™ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
  6. Docker๋Š” Dockerfile์ด๋ผ๋Š” ํŒŒ์ผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ ๋‹ค. Dockerfile์—๋Š” ์†Œ์Šค์™€ ํ•จ๊ป˜ ์˜์กด์„ฑ ํŒจํ‚ค์ง€ ๋“ฑ ์‚ฌ์šฉํ–ˆ๋˜ ์„ค์ • ํŒŒ์ผ์„ ๋ฒ„์ „ ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฝ๋„๋ก ๋ช…์‹œ๋˜์–ด์ง„๋‹ค.(๊ทธ๋ž˜์„œ ๋ˆ„๊ตฌ๋‚˜ ์ด๋ฏธ์ง€ ์ƒ์„ฑ๊ณผ์ •์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ˆ˜์ •๋„ ํ•  ์ˆ˜ ์žˆ๋‹ค)
profile
๋” ๋‚˜์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋กํ•ฉ์„ธ!๐Ÿง™๐Ÿปโ€โ™‚๏ธ

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