Docker 101

References: Docker Official Docs

Docker๋ž€?

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ•, ๊ตฌํ˜„, ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ๊ฒฉ๋ฆฌ๋œ ๊ฐ€์ƒํ™” ํ™˜๊ฒฝ์„ ์ƒ์„ฑํ•˜๋Š” ์„œ๋น„์Šคํ˜• ํ”Œ๋žซํผ

  • Docker ์‚ฌ์šฉ ์‹œ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ธํ”„๋ผ์—์„œ ๋ถ„๋ฆฌํ•ด ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋น ๋ฅด๊ฒŒ ์‹คํ–‰ ๊ฐ€๋Šฅ

Docker์˜ ๊ตฌ์กฐ

docker_structure.png
  • Docker๋Š” ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•จ.

  • Docker ํด๋ผ์ด์–ธํŠธ๋Š” Docker Container๋ฅผ ๋นŒ๋“œ, ์‹คํ–‰ ๋ฐ ๋ฐฐํฌํ•˜๋Š” ๋ฌด๊ฑฐ์šด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” Docker Deamone๊ณผ ํ†ต์‹ ํ•จ.

  • Linux Kernel ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด ์šด์˜์ฒด์ œ ์œ„์— Container๋ฅผ ๋งŒ๋“ค๊ณ , Docker ์ž์ฒด์—๋Š” ์„œ๋น„์Šค์˜ Container๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” Deamone์œผ๋กœ ์‹คํ–‰๋จ.

  • ์‹ค์ œ Container๋ฅผ ์ƒ์„ฑํ•˜๊ณ , Images๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ฃผ์ฒด๋Š” Docker ์„œ๋ฒ„์ด๋ฉฐ, Docker ์—”์ง„ ํ”„๋กœ์„ธ์Šค์—์„œ ๋™์ž‘ํ•จ.

  • Docker ์—”์ง„์€ ์™ธ๋ถ€์—์„œ API ์ž…๋ ฅ์„ ๋ฐ›์•„ Docker ์—”์ง„์˜ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•จ.

  • Docker ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜์–ด ์„œ๋ฒ„๋กœ์„œ ์ž…๋ ฅ์„ ๋ฐ›์„ ์ค€๋น„๊ฐ€ ๋œ ์ƒํƒœ๋ฅผ Docker Deamone์ด๋ผ๊ณ  ํ•จ

  • docker๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด Docker ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž„.

  • Docker ํด๋ผ์ด์–ธํŠธ๋Š” ์ž…๋ ฅ๋œ ๋ช…๋ น์–ด๋ฅผ ๋กœ์ปฌ์— ์กด์žฌํ•˜๋Š” Docker Deamone์—๊ฒŒ API๋กœ์„œ ์ „๋‹ฌํ•จ

  • ์ด๋•Œ Docker ํด๋ผ์ด์–ธํŠธ๋Š” /var/run/docker.sock์— ์œ„์น˜ํ•œ ์†Œ์ผ“์„ ํ†ตํ•ด Docker Deamone์˜ API๋ฅผ ํ˜ธ์ถœ

Container๋ž€?

  • ์‹ค์ œ ํ™”๋ฌผ ์„ ๋ฐ•์—์„œ ์‚ฌ์šฉํ•˜๋Š” Container์ฒ˜๋Ÿผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ํ‘œ์ค€ํ™”๋œ ํ˜•ํƒœ๋กœ ์ „๋‹ฌํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณต

  • ๋А์Šจํ•˜๊ฒŒ ๊ฒฉ๋ฆฌ๋œ ํ™˜๊ฒฝ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํŒจํ‚ค์ง•ํ•˜๊ณ , ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ ์ œ๊ณต

  • ๊ฒฉ๋ฆฌ ๋ฐ ๋ณด์•ˆ์„ ํ†ตํ•ด ์ง€์ •๋œ ํ˜ธ์ŠคํŠธ์—์„œ ์—ฌ๋Ÿฌ Container๋ฅผ ๋™์‹œ์— ์‹คํ–‰ ๊ฐ€๋Šฅ

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

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

  • Container๋Š” CI/CD ์›Œํฌํ”Œ๋กœ์šฐ์— ์ ํ•ฉํ•˜๊ธฐ๋„ ํ•จ

Daemon์ด๋ž€?

  • Docker API ์š”์ฒญ์„ ์ˆ˜์‹ ํ•˜๊ณ  Images, Container, ๋„คํŠธ์›Œํฌ ๋ฐ ๋ณผ๋ฅจ๊ณผ ๊ฐ™์€ Docker ๊ฐ์ฒด๋ฅผ ๊ด€๋ฆฌํ•จ.

  • Daemon์€ ๋‹ค๋ฅธ Daemon๊ณผ ํ†ต์‹ ํ•˜์—ฌ Docker ์„œ๋น„์Šค๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜๋„ ์žˆ์Œ.

Image์ด๋ž€?

  • Appliaction ํŒจํ‚ค์ง• ๋ฐ ์ „์†ก์„ ์œ„ํ•ด ์‚ฌ์šฉํ•จ.

  • Appliaction ์‹คํ–‰์— ํ•„์š”ํ•œ ๋…๋ฆฝ์ ์ธ ํ™˜๊ฒฝ์„ ํฌํ•จํ•˜๋ฉฐ, ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์„ ์œ„ํ•œ ์ผ์ข…์˜ ํ…œํ”Œ๋ฆฟ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Œ.

  • ์†Œ์Šค ์ฝ”๋“œ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์ข…์†์„ฑ, ๋„๊ตฌ ๋ฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๊ธฐํƒ€ ํŒŒ์ผ์„ ํฌํ•จํ•˜๋Š” ๋ถˆ๋ณ€ ํŒŒ์ผ์ž„.

  • ์ด๋ฏธ์ง€๋Š” ์ฝ๊ธฐ ์ „์šฉ์ด๋ฏ€๋กœ ์Šค๋ƒ…์ƒท ์ด๋ผ๊ณ ๋„ ํ•˜๋ฉฐ, ํŠน์ • ์‹œ์ ์˜ application๊ณผ ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ๋‚˜ํƒ€๋ƒ„.

  • ์ด๋Ÿฌํ•œ ์ผ๊ด€์„ฑ์€ docker์˜ ํฐ ํŠน์ง• ์ค‘ ํ•˜๋‚˜๋กœ, ๊ฐœ๋ฐœ์ž๊ฐ€ ์•ˆ์ •์ ์ด๊ณ  ๊ท ์ผํ•œ ํ™˜๊ฒฝ์—์„œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์‹คํ—˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ.

Last updated