๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๋„์ปค (6)

๋‹ญ๋ฐœ๊ฐœ๋ฐœ

[Docker] 4์ผ์ฐจ. 35~48pg | ์ง€์†์  ์ธํ‹ฐ๊ทธ๋ ˆ์ด์…˜, ๋‹จ์œ„ํ…Œ์ŠคํŠธ, ์ปจํ…Œ์ด๋„ˆ์˜ ์—ญ์‚ฌ, Docker

4์ผ์ฐจ. ์ œ 1๋ถ€. ๋„์ž…ํŽธ ์ œ 1์žฅ. ์‹œ์Šคํ…œ๊ณผ ์ธํ”„๋ผ ๊ธฐ์ดˆ ์ง€์‹ 1.1. ์‹œ์Šคํ…œ ๊ธฐ๋ฐ˜์˜ ๊ธฐ์ดˆ ์ง€์‹ 1.2. ํ•˜๋“œ์›จ์–ด์™€ ๋„คํŠธ์›Œํฌ ๊ธฐ์ดˆ ์ง€์‹ 1.3. OS(Linux) ๊ธฐ์ดˆ ์ง€์‹ 1.4. ๋ฏธ๋“ค์›จ์–ด ๊ธฐ์ดˆ์ง€์‹ 1.5. ์ธํ”„๋ผ ๊ตฌ์„ฑ ๊ด€๋ฆฌ ๊ธฐ์ดˆ ์ง€์‹ 1.6. ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ๊ตฌ์„ฑ ๊ด€๋ฆฌ 1.7. ๋Œ€ํ‘œ์ ์ธ ์ธํ”„๋ผ ๊ตฌ์„ฑ ๊ด€๋ฆฌ ํˆด 1.8. ์ง€์†์  ์ธํ‹ฐ๊ทธ๋ ˆ์ด์…˜ / ์ง€์†์  ๋”œ๋ฆฌ๋ฒ„๋ฆฌ - ํ…Œ์ŠคํŠธ๊ฐ€ ๋๋‚œ ์•ˆ์ „ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œํ’ˆ ํ™˜๊ฒฝ์œผ๋กœ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์ดˆ ์ง€์‹ ์„ค๋ช… 1.8.1. ์ง€์†์  ์ธํ‹ฐ๊ทธ๋ ˆ์ด์…˜(Continuous Integration) - ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ ๋ฐ ์ˆ˜์ •ํ•  ๋•Œ๋งˆ๋‹ค ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ํ™•์‹คํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ• - ์†Œํ”„ํŠธ์›จ์–ด์˜ ํ’ˆ์งˆ ํ–ฅ์ƒ์„ ๋ชฉ์ ์œผ๋กœ ๊ณ ์•ˆ๋œ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค - ๋‹จ์œ„ ํ…Œ์ŠคํŠธ : ์†Œํ”„ํŠธ์›จ..

[Docker] 1์ผ์ฐจ. 2-8pg | ์‹œ์Šคํ…œ๊ณผ ์ธํ”„๋ผ, ์˜จํ”„๋ ˆ๋ฏธ์Šค์™€ ํด๋ผ์šฐ๋“œ

1์ผ์ฐจ. ์ œ 1๋ถ€. ๋„์ž…ํŽธ ์ œ 1์žฅ. ์‹œ์Šคํ…œ๊ณผ ์ธํ”„๋ผ ๊ธฐ์ดˆ ์ง€์‹ - ์‹œ์Šคํ…œ ๊ธฐ๋ฐ˜ : ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐ€๋™์‹œํ‚ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ํ•˜๋“œ์›จ์–ด๋‚˜ OS/๋ฏธ๋“ค์›จ์–ด ๋“ฑ๊ณผ ๊ฐ™์€ ์ธํ”„๋ผ. - ์ด ์ฑ…์˜ ๋ฉ”์ธ ์ฃผ์ œ : Docker : ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ํ™˜๊ฒฝ์„ ์ž‘์„ฑ ๋ฐ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํ”Œ๋žซํผ - ์ œ 1์žฅ์—์„œ๋Š” Docker๋ฅผ ๋„์ž…ํ•˜๊ธฐ์— ์•ž์„œ ์•Œ์•„๋‘ฌ์•ผ ํ•  ์‹œ์Šคํ…œ ๊ธฐ๋ฐ˜์˜ ๊ฐœ์š”์™€ ์‹œ์Šคํ…œ ๊ธฐ๋ฐ˜์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ธํ”„๋ผ ๊ธฐ์ˆ ์˜ ํ•ต์‹ฌ ๋‚ด์šฉ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•œ๋‹ค. 1.1. ์‹œ์Šคํ…œ ๊ธฐ๋ฐ˜์˜ ๊ธฐ์ดˆ ์ง€์‹ - ํญํฌํ˜• ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•œ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์—์„œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—”์ง€๋‹ˆ์–ด์™€ ์ธํ”„๋ผ ์—”์ง€๋‹ˆ์–ด์˜ ์—ญํ• ์ด ๋‚˜๋ˆ ์ ธ ์žˆ์—ˆ๋‹ค. - ํ•˜์ง€๋งŒ ํด๋ผ์šฐ๋“œ์˜ ๋“ฑ์žฅ์œผ๋กœ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์˜ ํ๋ฆ„์ด ํฌ๊ฒŒ ๋ฐ”๋€Œ์—ˆ๋‹ค. ์˜จํ”„๋ ˆ๋ฏธ์Šค ํ™˜๊ฒฝ -> ํด๋ผ์šฐ๋“œ ์ƒ์˜ ๊ฐ€์ƒ ์ธ์Šคํ„ด์Šค - ํด๋ผ์šฐ๋“œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋Œ€๋ถ€๋ถ„..

docker0 : ์ปจํ…Œ์ด๋„ˆ๋Š” ์–ด๋–ป๊ฒŒ ํ†ต์‹ ํ•˜๋‚˜์š”?

์œ„ ์‚ฌ์ง„์˜ ๋„ค๋ชจ๋‚œ ๋ฐ•์Šค๊ฐ€ ๋„์ปค ํ˜ธ์ŠคํŠธ์ด๋‹ค. (๋„์ปค๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋Š” ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ ์—ฌ๊ธฐ์„œ docker daemon์„ startํ•˜๊ฒŒ ๋˜๋ฉด docker0๋ผ๊ณ  ํ•˜๋Š” network interface๊ฐ€ ์ƒ๊ธด๋‹ค. docker0๋ผ๊ณ  ํ•˜๋Š” interface๋Š” virtual ethernet bridge(๋ธŒ๋ฆฟ์ง€ ๋„คํŠธ์›Œํฌ๋ฅผ ์ง€์›ํ•ด์ฃผ๋Š” ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ)์ด๋‹ค. ์ปจํ…Œ์ด๋„ˆ์—์„œ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ip์™€ ์‹ค์ œ ๋„์ปค ํ˜ธ์ŠคํŠธ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋„คํŠธ์›Œํฌ๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์—ฐ๊ฒฐ๊ณ ๋ฆฌ ์—ญํ• ์„ ํ•ด์ค€๋‹ค. ๋ธŒ๋ฆฟ์ง€ ๋„คํŠธ์›Œํฌ๋ฅผ ์ง€์›ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด์„œ docker0(๋„์ปค ์ œ๋กœ)๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ network advance translation์ด๋ผ๊ณ  ํ•˜๋Š” nat ์„œ๋น„์Šค์™€ ํฌํŠธํฌ์›Œ๋”ฉ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ด์ฃผ๊ณ  ์žˆ๋‹ค. docker0 - virtual ethernet bridge - L2 ํ†ต์‹ ๊ธฐ๋ฐ˜..

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ž€? ์ปจํ…Œ์ด๋„ˆ๋ž€?

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค(Kubernetes)๋ž€? -> ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋„์ปค ํ”Œ๋žซํผ์— ์˜ฌ๋ ค์„œ ๊ด€๋ฆฌ+์šด์˜+ํด๋Ÿฌ์Šคํ„ฐ ์„œ๋น„์Šค๋ฅผ ์ง€์›ํ•ด ์ฃผ๋Š” ๊ฒƒ. = Container Orchestration ์ปจํ…Œ์ด๋„ˆ๋ž€? ์œ„ ์‚ฌ์ง„์˜ app.js ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰ํ•˜๋ ค๋ฉด nodejs๊ฐ€ ํ•„์š”ํ•˜๋‹ค. node ๋ช…๋ น์–ด์— app.js ์†Œ์Šค ํŒŒ์ผ์„ ๋„ฃ์–ด์ฃผ๋ฉด ์‹คํ–‰๋œ๋‹ค. ์ด๊ฑธ ๊ฐ€์ง€๊ณ  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“œ๋ ค๋ฉด, Docker ํŒŒ์ผ์— FROM node:12 COPY app.js /app.js ENTRYPOINT ["node", "app.js"] node:12๋Š” ๋ฒ„์ „์„ ๋‚˜ํƒ€๋‚ด๋Š”๋ฐ, node๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๊ณ  app.js๋ฅผ ์ปจํ…Œ์ด๋„ˆ์— ๋ณต์‚ฌํ•˜๋ฉด -> node๋ฒ„์ „ 12์˜ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค๊ณ  app.js๋ฅผ ๋„ฃ์€ ๊ตฌ์กฐ. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋™์ž‘์‹œํ‚ฌ ๋ช…๋ ์–ด?๋Š” node app.js ์ € ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋™..

Dockerfile ์ด์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋นŒ๋“œํ•˜๊ธฐ

* Dockerfile์ด๋ž€? ๋„์ปค ๋ช…๋ น์–ด๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ, ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—์„œ OS์„ค์ •, ๋ฏธ๋“ค์›จ์–ด ์„ค์น˜, ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ • ๋“ฑ์€ ๋ชจ๋‘ ์ง์ ‘ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์ผ๋ จ์˜ ์ž‘์—…์„ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์Šคํฌ๋ฆฝํŠธ๋กœ ๋งŒ๋“ ๊ฒƒ์ด dockerfile์ด๋‹ค. ์ด๋Ÿฌํ•œ Dockerfile์€ ํ•„์š”ํ•œ ํ™˜๊ฒฝ์„ค์ •์ด ๋ชจ๋‘ ์„ธํŒ…๋œ image๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ๋ชฉ์ ์ด ์žˆ์œผ๋ฉฐ, ๋˜ํ•œ ์ž๋™ํ™”๋กœ์จ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ์Šคํฌ๋ฆฝํŠธ์ด๋ฏ€๋กœ ๋ณ€๊ฒฝํ•ด์„œ ์žฌ์‚ฌ์šฉํ• ์ˆ˜๋„ ์žˆ๋‹ค.์ด๋Ÿฌํ•œ ๋„์ปคํŒŒ์ผ์˜ ๋‚ด์šฉ์€ ์•„๋ž˜์™€ ๊ฐ™์€ ์ •๋ณด๋“ค์„ ๊ธฐ์ˆ ํ•œ๋‹ค. 1. ๋ฒ ์ด์Šค๊ฐ€ ๋  ๋„์ปค ์ด๋ฏธ์ง€ 2. ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—์„œ ์ˆ˜ํ–‰ํ•  ๋ช…๋ น, ์กฐ์ž‘ ๋“ฑ 3. ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋“ฑ์˜ ์„ค์ • 4. ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—์„œ ์ž‘๋™์‹œํ‚ฌ ๋ฐ๋ชฌ ์‹คํ–‰ * Dockerfile ๊ตฌ๋ฌธ ๊ธฐ๋ณธ Dockerfile์€ ํ…์ŠคํŠธ ํ˜•์‹์ด..