Docker๐Ÿณ

TEDDYยท2022๋…„ 11์›” 21์ผ
0

CODECAMP

๋ชฉ๋ก ๋ณด๊ธฐ
13/53
post-thumbnail

Docker

:๋„์ปค๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜์˜ ์˜คํ”ˆ์†Œ์Šค ๊ฐ€์ƒํ™” ํ”Œ๋žซํผ์ด๋‹ค.

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

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

์ด๋ฏธ์ง€

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

Dockerfile

: ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด Dockerfile์ด๋ผ๋Š” ํŒŒ์ผ์— DSL(Domain Specific Language) ์–ธ์–ด๋ฅผ ์ด์šฉํ•ด ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹จ์ˆœ ํ…์ŠคํŠธ ํŒŒ์ผ๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ ์†Œ์Šค์™€ ํ•จ๊ป˜ ๊ด€๋ฆฌํ•œ๋‹ค. ์„œ๋ฒ„์—์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ•  ๋•Œ Dockerfile ์„ ํ†ตํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๋ฉด ๋œ๋‹ค. Dockerfile์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ‚ค์›Œ๋“œ๋Š” 20๊ฐœ ์ •๋„ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ๊ฑด FROM ๊ณผ RUN ์ด๋‹ค. FROM ๊ณผ RUN ์œผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

๋ช…๋ น์–ด

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

์ปจํ…Œ์ด๋„ˆ ๋ชฉ๋ก ํ™•์ธํ•˜๊ธฐ = docker ps
์ปจํ…Œ์ด๋„ˆ ์‹œ์ž‘ํ•˜๊ธฐ = docker start "์ปจํ…Œ์ด๋„ˆ์•„์ด๋””"
์ปจํ…Œ์ด๋„ˆ ์ค‘์ง€ํ•˜๊ธฐ = docker stop "์ปจํ…Œ์ด๋„ˆ์•„์ด๋””"
์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œํ•˜๊ธฐ = docker rm "์ปจํ…Œ์ด๋„ˆ์•„์ด๋””"
์ปจํ…Œ์ด๋„ˆ ๋กœ๊ทธ๋ณด๊ทธ = docker logs
์ปจํ…Œ์ด๋„ˆ ๋ช…๋ น์–ด ์‹คํ–‰ํ•˜๊ธฐ = docker exec

2.์ด๋ฏธ์ง€

์ด๋ฏธ์ง€ ๋ชฉ๋ก ํ™•์ธํ•˜๊ธฐ = docker image ls
์ด๋ฏธ์ง€ ์‚ญ์ œํ•˜๊ธฐ = docket image rm
์ด๋ฏธ์ง€ ์—…๋กœ๋“œํ•˜๊ธฐ = docker image push

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