๋„์ปค ์ดํ•ด

์ €๋Š” ์›น ํ”„๋กœ์ ํŠธ์˜ ๊ฐœ๋ฐœ/์ „๋‹ฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌ์กฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋ช‡ ๋‹ฌ ๋™์•ˆ Docker๋ฅผ ์‚ฌ์šฉํ•ด ์™”์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” Habrakhabr ๋…์ž๋“ค์—๊ฒŒ docker์— ๋Œ€ํ•œ ์†Œ๊ฐœ ๊ธฐ์‚ฌ์˜ ๋ฒˆ์—ญ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. "๋„์ปค ์ดํ•ดํ•˜๊ธฐ".

๋„์ปค๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

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

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

์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™” ํ”Œ๋žซํผ ๋ฐ ๋„๊ตฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ)์„ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์— ํŒจํ‚ค์ง•ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐœ๋ฐœ ๋ฐ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์ด๋Ÿฌํ•œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํŒ€์— ๋ฐฐํฌ ๋ฐ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์™€ ํด๋ผ์šฐ๋“œ ๋ชจ๋‘์˜ ์ƒ์‚ฐ ํ˜„์žฅ์— ์ด๋Ÿฌํ•œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.

๋„์ปค๋ฅผ ์–ด๋””์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋น ๋ฅด๊ฒŒ ๊ฒŒ์‹œํ•˜์„ธ์š”

Docker๋Š” ๊ฐœ๋ฐœ ์ฃผ๊ธฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. Docker๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ์„œ๋น„์Šค์™€ ํ•จ๊ป˜ ๋กœ์ปฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ง€์†์ ์ธ ํ†ตํ•ฉ ๋ฐ ๋ฐฐํฌ ์›Œํฌํ”Œ๋กœ ํ”„๋กœ์„ธ์Šค์™€ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋” ์‰ฝ๊ฒŒ ๋ฐฐ์น˜ํ•˜๊ณ  ํŽผ์น˜๊ธฐ

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

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

๋” ๋†’์€ ๋กœ๋“œ์™€ ๋” ๋งŽ์€ ํŽ˜์ด๋กœ๋“œ

Docker๋Š” ๊ฐ€๋ณ๊ณ  ๋น ๋ฆ…๋‹ˆ๋‹ค. ์ด๋Š” ํ•˜์ดํผ๋ฐ”์ด์ € ๊ธฐ๋ฐ˜ ๊ฐ€์ƒ ๋จธ์‹ ์— ๋Œ€ํ•œ ํƒ„๋ ฅ์ ์ด๊ณ  ๋น„์šฉ ํšจ์œจ์ ์ธ ๋Œ€์•ˆ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ž์ฒด ํด๋ผ์šฐ๋“œ๋‚˜ Platform-as-Service๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ์™€ ๊ฐ™์ด ๋ถ€ํ•˜๊ฐ€ ๋†’์€ ํ™˜๊ฒฝ์—์„œ ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ณด์œ ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜๋ ค๋Š” ์ค‘์†Œ ๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๋„ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ๋„์ปค ๊ตฌ์„ฑ์š”์†Œ

Docker๋Š” ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

  • Docker: ์˜คํ”ˆ ์†Œ์Šค ๊ฐ€์ƒํ™” ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.
  • Docker Hub: Docker ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฐฐํฌํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์„œ๋น„์Šค๋กœ์„œ์˜ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.

๋ฉ”๋ชจ! Docker๋Š” Apache 2.0 ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

๋„์ปค ์•„ํ‚คํ…์ฒ˜

Docker๋Š” ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Docker ํด๋ผ์ด์–ธํŠธ๋Š” ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ, ์‹คํ–‰ ๋ฐ ๋ฐฐํฌ ์ž‘์—…์„ ๋‹ด๋‹นํ•˜๋Š” Docker ๋ฐ๋ชฌ๊ณผ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๋ชจ๋‘ ๋™์ผํ•œ ์‹œ์Šคํ…œ์—์„œ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์›๊ฒฉ docker ๋ฐ๋ชฌ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ์†Œ์ผ“์ด๋‚˜ RESTful API๋ฅผ ํ†ตํ•ด ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค.

๋„์ปค ์ดํ•ด

๋„์ปค ๋ฐ๋ชฌ

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

๋„์ปค ํด๋ผ์ด์–ธํŠธ

Docker ํ”„๋กœ๊ทธ๋žจ์ธ Docker ํด๋ผ์ด์–ธํŠธ๋Š” Docker์˜ ๊ธฐ๋ณธ ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋ช…๋ น์„ ๋ฐ›๊ณ  docker ๋ฐ๋ชฌ๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค.

๋„์ปค ๋‚ด๋ถ€

Docker๊ฐ€ ๋ฌด์—‡์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ ์ดํ•ดํ•˜๋ ค๋ฉด ๋‹ค์Œ ์„ธ ๊ฐ€์ง€ ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•ด ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์ด๋ฏธ์ง€
  • ๊ธฐ์žฌ
  • ์šฉ๊ธฐ

์ด๋ฏธ์ง€

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

๋ ˆ์ง€์Šคํ„ฐ

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

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

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

๊ทธ๋ ‡๋‹ค๋ฉด Docker๋Š” ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋‚˜์š”?

์ง€๊ธˆ๊นŒ์ง€ ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์œ„์น˜ํ•œ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด๋ฏธ์ง€์—์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“ค์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Docker Hub ๋˜๋Š” ๋‹ค๋ฅธ ์ด๋ฏธ์ง€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ํ†ตํ•ด ์ด๋ฏธ์ง€๋ฅผ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ฒฐํ•ฉ๋˜๋Š”์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€๋Š” ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋‚˜์š”?

์šฐ๋ฆฌ๋Š” ์ด๋ฏธ์ง€๊ฐ€ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ์ฝ๊ธฐ ์ „์šฉ ํ…œํ”Œ๋ฆฟ์ด๋ผ๋Š” ๊ฒƒ์„ ์ด๋ฏธ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ด๋ฏธ์ง€๋Š” ์ผ๋ จ์˜ ๋ ˆ๋ฒจ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋„์ปค๋Š” ์œ ๋‹ˆ์˜จ ํŒŒ์ผ ์‹œ์Šคํ…œ ์ด๋Ÿฌํ•œ ๋ ˆ๋ฒจ์„ ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€๋กœ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์œ ๋‹ˆ์˜จ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋ฉด ์„œ๋กœ ๋‹ค๋ฅธ ํŒŒ์ผ ์‹œ์Šคํ…œ(๋‹ค๋ฅธ ๋ถ„๊ธฐ)์˜ ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ํˆฌ๋ช…ํ•˜๊ฒŒ ๊ฒน์ณ ์ผ๊ด€๋œ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋ชจ๋“  ์ด๋ฏธ์ง€์˜ ํ•ต์‹ฌ์—๋Š” ๊ธฐ๋ณธ ์ด๋ฏธ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ubuntu๊ธฐ๋ณธ ์ด๋ฏธ์ง€ UbuntuApache ๋˜๋Š” Fedora๋Š” Fedora ๋ฐฐํฌํŒ์˜ ๊ธฐ๋ณธ ์ด๋ฏธ์ง€์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Apache ์ด๋ฏธ์ง€๊ฐ€ ์žˆ๋‹ค๋ฉด ์ด๋ฅผ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ธฐ๋ณธ ์ด๋ฏธ์ง€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉ”๋ชจ! Docker๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ Docker Hub ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

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

  • ๋ช…๋ น์„ ์‹คํ–‰
  • ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ„ฐ๋ฆฌ ์ถ”๊ฐ€
  • ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ƒ์„ฑ
  • ์ด ์ด๋ฏธ์ง€์˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋  ๋•Œ ์‹คํ–‰ํ•  ์ž‘์—…์— ๋Œ€ํ•œ ์ง€์นจ

์ด ์ง€์นจ์€ ํŒŒ์ผ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. Dockerfile. Docker๋Š” ์ด๊ฒƒ์„ ์ฝ์Šต๋‹ˆ๋‹ค. Dockerfile, ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•  ๋•Œ ์ด๋Ÿฌํ•œ ์ง€์นจ์„ ์‹คํ–‰ํ•˜๊ณ  ์ตœ์ข… ์ด๋ฏธ์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋„์ปค ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋Š” ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋‚˜์š”?

๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋Š” Docker ์ด๋ฏธ์ง€์˜ ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด ๊ณต์šฉ Docker Hub ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๋˜๋Š” ๊ฐœ์ธ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Docker ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฏธ ๊ฒŒ์‹œ๋œ ์ด๋ฏธ์ง€๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์ด๋ฅผ Docker ๋จธ์‹ ์— ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ปจํ…Œ์ด๋„ˆ๋Š” ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋‚˜์š”?

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

์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋˜๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”?

์•„๋‹ˆ๋ฉด ํ”„๋กœ๊ทธ๋žจ์„ ์ด์šฉํ•ด์„œ docker๋˜๋Š” RESTful API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ docker ํด๋ผ์ด์–ธํŠธ๋Š” docker ๋ฐ๋ชฌ์—๊ฒŒ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹œ์ž‘ํ•˜๋ผ๊ณ  ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.

$ sudo docker run -i -t ubuntu /bin/bash

์ด ๋ช…๋ น์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. docker, ์˜ต์…˜ ํฌํ•จ run, ์ด๋Š” ์ƒˆ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋  ๊ฒƒ์ž„์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์†Œ ์š”๊ตฌ ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ด๋ฏธ์ง€์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ubuntu
  • ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋  ๋•Œ ์‹คํ–‰ํ•˜๋ ค๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ /bin/bash

์ด ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ์–ด๋–ค ์ผ์ด ๋ฐœ์ƒํ•˜๋‚˜์š”?

Docker๋Š” ์ˆœ์„œ๋Œ€๋กœ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

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

์ด์ œ ์ž‘๋™ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ค‘์ง€ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ๊ฒฝ์šฐ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ญ์ œํ•˜์„ธ์š”.

์‚ฌ์šฉ ๋œ ๊ธฐ์ˆ 

Docker๋Š” Go ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ ์ผ๋ถ€ ์ปค๋„ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Linux์œ„์˜ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด.

๋„ค์ž„์ŠคํŽ˜์ด์Šค

Docker๋Š” ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. namespaces ์ปจํ…Œ์ด๋„ˆ๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฒฉ๋ฆฌ๋œ ์ž‘์—… ๊ณต๊ฐ„์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด docker๋Š” ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์„ธํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ปจํ…Œ์ด๋„ˆ์˜ ๊ฐ ์ธก๋ฉด์ด ์ž์ฒด ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์‹คํ–‰๋˜๊ณ  ์™ธ๋ถ€ ์‹œ์Šคํ…œ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๋Š” ๊ฒฉ๋ฆฌ๋œ ๋ ˆ์ด์–ด๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

docker๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์ผ๋ถ€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ชฉ๋ก:

  • pid: ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ถ„๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด;
  • ๊ทธ๋ฌผ: ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ๊ด€๋ฆฌ์šฉ
  • IPC: IPC ์ž์›์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. (ICP: ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ );
  • ๋ฌธ: ๋งˆ์šดํŠธ ์ง€์ ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • UTC: ์ปค๋„์„ ๋ถ„๋ฆฌํ•˜๊ณ  ๋ฒ„์ „ ์ƒ์„ฑ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค(UTC: Unix ์‹œ๊ฐ„ ๊ณต์œ  ์‹œ์Šคํ…œ).

ํ†ต์ œ ๊ทธ๋ฃน

Docker๋„ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. cgroups ๋˜๋Š” ํ†ต์ œ ๊ทธ๋ฃน. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฒฉ๋ฆฌํ•˜์—ฌ ์‹คํ–‰ํ•˜๋Š” ํ•ต์‹ฌ์€ ์ œ๊ณตํ•˜๋ ค๋Š” ๋ฆฌ์†Œ์Šค๋งŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข‹์€ ์ด์›ƒ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ์–ด ๊ทธ๋ฃน์„ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ•˜๋“œ์›จ์–ด ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณต์œ ํ•˜๊ณ  ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ œํ•œ ์‚ฌํ•ญ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ปจํ…Œ์ด๋„ˆ์— ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ์–‘์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.

์œ ๋‹ˆ์˜จ ํŒŒ์ผ ์‹œ์Šคํ…œ

Union File System ๋˜๋Š” UnionFS๋Š” ๋ ˆ์ด์–ด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ž‘๋™ํ•˜๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์œผ๋กœ ๋งค์šฐ ๊ฐ€๋ณ๊ณ  ๋น ๋ฆ…๋‹ˆ๋‹ค. Docker๋Š” UnionFS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ตฌ์ถ•๋˜๋Š” ๋ธ”๋ก์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. Docker๋Š” AUFS, btrfs, vfs ๋ฐ DeviceMapper๋ฅผ ํฌํ•จํ•˜์—ฌ UnionFS์˜ ์—ฌ๋Ÿฌ ๋ณ€ํ˜•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆ ํ˜•์‹

Docker๋Š” ์ด๋Ÿฌํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ปจํ…Œ์ด๋„ˆ ํ˜•์‹์ด๋ผ๊ณ  ํ•˜๋Š” ๋ž˜ํผ๋กœ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ํ˜•์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. libcontainerDocker๋Š” ๊ธฐ์กด ์ปจํ…Œ์ด๋„ˆ ํ˜•์‹๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Linux ~์˜ ๋„์›€์œผ๋กœ LXC. ์•ž์œผ๋กœ Docker๋Š” ๋‹ค๋ฅธ ์ปจํ…Œ์ด๋„ˆ ํ˜•์‹์„ ์ง€์›ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด BSD Jails ๋˜๋Š” Solaris Zones๊ณผ ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

DDoS ๋ณดํ˜ธ, VPS VDS ์„œ๋ฒ„๊ฐ€ ์žˆ๋Š” ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•œ ์•ˆ์ •์ ์ธ ํ˜ธ์ŠคํŒ… ๊ตฌ์ž… ๐Ÿ”ฅ DDoS ๊ณต๊ฒฉ ๋ฐฉ์ง€ ๊ธฐ๋Šฅ์ด ํƒ‘์žฌ๋œ ์•ˆ์ •์ ์ธ ์›น์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ…, VPS ๋ฐ VDS ์„œ๋ฒ„๋ฅผ ๊ตฌ๋งคํ•˜์„ธ์š” | ProHoster