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

๋ชฉ๋กdocker (11)

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

[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] 3์ผ์ฐจ. 19-34pg | Linux ์ปค๋„, ๋ฏธ๋“ค์›จ์–ด, ์ธํ”„๋ผ

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

[Docker] docker์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค.

Volumes : ๋””์Šคํฌ์—์„œ ์ž์›์„ ํ• ๋‹นํ•ด ์ฃผ๋Š”.. Container : ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ„ image Image : ์ž๋ฐ”์˜ ํด๋ž˜์Šค์ฒ˜๋Ÿผ ์ฐ์–ด๋‚ธ ํ‹€ ๊ฐ™์€๊ฑฐ *dockerfile์ด ์žˆ๋Š” ๊ณ„์ •์—์„œ ์‹คํ–‰ํ•ด์•ผํ•จ ex) dockerfile์„ ํšŒ์‚ฌ ์šฐ๋ฆฌ ์„œ๋ฒ„์— ์˜ฌ๋ ธ์œผ๋ฉด weserver@weserver ์—ฌ๊ธฐ์„œ ์‹คํ–‰ ๋‚ด๊ฐ€ ์˜ˆ์ „์— ํ–ˆ๋˜ $ docker pull mariadb ์ด๊ฑฐ๋Š” docker hub์—์„œ public์œผ๋กœ ๊ณต๊ฐœ๋œ image๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ž„. ์ง€๊ธˆ ํ•˜๋Š”๊ฑด ๊ฐœ๋ฐœ์„œ๋ฒ„์— ์˜ฌ๋ผ์˜จ dockerfile์„ ์ปจํ…Œ์ด๋„ˆ์— ์˜ฌ๋ฆฌ๊ธฐ. ์กฐ๊ฑด1. image์™€ container ์ด๋ฆ„์€ dtu-***-backend๋ผ๊ณ  ํ•  ๊ฒƒ. ๋‚˜๋Š” ๋จผ์ € ์œˆ๋„์šฐ์—์„œ ๋ฆฌ๋ˆ…์Šค ์ฒ˜๋Ÿผ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ WSL2 Ubuntu๋ฅผ ํ™œ์šฉํ•˜์—ฌ docker des..

[Docker] none image

์–ด๋Š์ˆœ๊ฐ„ ์ƒ์„ฑํ•œ image ๋ชฉ๋ก์„ ๋ณด๋‹ˆ ๋ˆ„๊ฐ€ ์ƒ์„ฑํ–ˆ๋Š”์ง€๋„ ๋ชจ๋ฅด๋Š” : ์ด๋ฏธ์ง€๋“ค์ด ์ฆ์‹๋˜์–ด์žˆ์—ˆ๋‹ค. image๊ฐ€ ๋ญ”๋ฐ? : ์ด๋ฏธ์ง€๋Š” ์–ด๋–ค ์ฝ”๋“œ์—์„œ๋“  ๋” ์ด์ƒ ์ฐธ์กฐ๋˜์ง€ ์•Š๋Š” ์ด๋ฏธ์ง€์ด๋‹ค. docker build๋ฅผ ํ•˜๊ฑฐ๋‚˜ ์ด๋ฏธ์ง€๋ฅผ pullํ–ˆ์„ ๋•Œ ์ƒ๊ฒจ๋‚œ๋‹ค. ํ˜„์žฌ ๋„์ปค ์ด๋ฏธ์ง€์˜ ์ƒํ™ฉ์„ ๋ณด๋ฉด IMAGE ID๊ฐ€ 7184b27319b4 ์ด๊ณ  ์ด๋ฆ„์ด test:0.1 ์ธ ์ด๋ฏธ์ง€๊ฐ€ ์žˆ๋‹ค. ์ด ์ด๋ฏธ์ง€์˜ Dockerfile์„ ์ผ๋ถ€ ์ˆ˜์ •ํ•˜๊ณ , sudo docker build --tag test:0.1 ./ ์ด๋ฏธ์ง€๋ฅผ ์žฌ์ƒ์„ฑ ํ•ด์ฃผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์›๋ž˜ test:0.1์˜ ID์˜€๋˜ 7184b27319b4 ๊ฐ€ ์˜ ์ด๋ฆ„์œผ๋กœ ๋ณ€๊ฒฝ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜๊ฐ€ ์žˆ๋‹ค. ์ฆ‰, ๋นŒ๋“œ ์ด์ „์—๋Š” ID๊ฐ€ 7184b27319b4์ธ ์ด๋ฏธ์ง€๋ฅผ ์šฐ๋ฆฌ๊ฐ€ test๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์ฐธ์กฐ..