์ด๋ฏธ์ง
Docker์์ ์ด๋ฏธ์ง(Image)๋ ์ปจํ
์ด๋๋ฅผ ์์ฑํ๊ธฐ ์ํ ์ค๊ณ๋์ด๋ฉฐ,
์ฌ๋ฌ ๊ฐ์ ๋ ์ด์ด(layer)๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
๊ฐ ๋ ์ด์ด๋ ์ด์ ๋ ์ด์ด ์์ ์์ด๋ ๊ณ์ธต์ ์ธ ๊ตฌ์กฐ๋ก,
ํ์ผ ์์คํ
์ ๋ณํ(์ถ๊ฐ/์ญ์ /์์ )๋ฅผ ๋ด๊ณ ์๋ค.
๐ช ๋ ์ด์ด ๊ตฌ์กฐ
์ด๋ฏธ์ง๋ ๊ฐ์ ๋จธ์ ์ ๋นํด์๋ ๊ฐ๋ณ์ง๋ง
์ปจํ
์ด๋๋ฅผ ์์ฑํ๊ธฐ ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ์ฉ๋์ด ์์ง๋ง์ ์๋ค.
์ด๋ ๋งค๋ฒ ์ด๋ฏธ์ง๋ฅผ ์ฒ์๋ถํฐ ๋ค์ ๋น๋ํ๊ณ ๋ค์ด๋ก๋ ๋ฐ๋๋ค๋ฉด,
์๊ฐ๋ ์ค๋ ๊ฑธ๋ฆฌ๊ณ ๋์คํฌ๋ ๋ญ๋น๋๋ค.
๊ทธ๋์ ๋์ปค๋ ์ด๋ฏธ์ง๋ฅผ ๋ ์ด์ด ๊ตฌ์กฐ๋ก ๊ด๋ฆฌํ์ฌ
์ค๋ณต๋ ๋ถ๋ถ์ ์บ์๋ก ์ฌ์ฌ์ฉํ๊ณ , ๋ณ๊ฒฝ๋ ๋ถ๋ถ๋ง ์๋ก ๋น๋ํ๋ ๋ฐฉ์์ผ๋ก
์ ์ฒด ์ด๋ฏธ์ง ๋น๋ ์๊ฐ์ ๋จ์ถํ๊ณ ๋์คํฌ ์ฌ์ฉ๋์ ์ค์ด๋ฉฐ ์ต์ ํํ๋ค.
ํ ๋ ์ด์ด๊ฐ ๋ณ๊ฒฝ๋๋ค๋ฉด, ์ด๋ฏธ์ง์ ๋ชจ๋ ๋ถ๋ถ์ ๋ณ๊ฒฝํ๋ ๊ฒ ์๋๋ผ
๋ณ๊ฒฝ๋ ๋ ์ด์ด์ ์ ๋ ์ด์ด๋ง ๋ค์ ๋น๋ํ๋ฉด ๋๋ค.
๋ชจ๋ ๋ ์ด์ด๋ ์ฝ๊ธฐ ์ ์ฉ์ ๋ถ๋ณ ๋ ์ด์ด์ด๊ณ
์๋ก์ด ๋ณ๊ฒฝ ์ฌํญ์ ์๋ก์ด ๋ ์ด์ด๋ก ์ถ๊ฐํ๋ค.
๋ฒ ์ด์ค ๋ ์ด์ด
์ฒซ ๋ฒ์งธ ๋ ์ด์ด๋ ์ด์ ์ฒด์ ์ ๊ธฐ๋ณธ ํ์ผ ์์คํ
์ ํฌํจํ๋ฉฐ
๋ค๋ฅธ ๋ชจ๋ ๋ ์ด์ด์ ๊ธฐ๋ฐ์ด ๋๋ค.
FROM ubuntu:22.04
: ์ฐ๋ถํฌ OS์ ์ปค๋์ ๋ฐํ์ผ๋ก ํ๋ค๋ ์๋ฏธ
์ค๊ฐ ๋ ์ด์ด
Dockerfile์์ RUN
, COPY
, ADD
๋ฑ
๋ช
๋ น์ด ํ๋ ํ๋๋ง๋ค ํ๋์ ๋ ์ด์ด๊ฐ ์์ฑ๋๋ค.
์๋ฅผ ๋ค์ด, ์๋์ ๊ฐ์ด ์ด๋ฏธ์ง ๋ ์ด์ด๊ฐ ์์์ ๋
FROM ubuntu:20.04
→ ์ฒซ ๋ฒ์งธ ๋ ์ด์ดCOPY . /app
→ ๋ ๋ฒ์งธ ๋ ์ด์ดRUN npm install
→ ์ธ ๋ฒ์งธ ๋ ์ด์ด
...
RUN ๋จ๊ณ๊ฐ ๋ณ๊ฒฝ๋๋ฉด, ๊ทธ ์ด์ ๋จ๊ณ์ธ FROM ubuntu:20.04์ COPY . /app์ ์บ์๋ฅผ ์ฌ์ฉํ๊ณ ,
๋ณ๊ฒฝ๋ RUN ๋จ๊ณ๋ถํฐ ๊ทธ ์ดํ ๋ช
๋ น์ด๋ง ๋ค์ ๋น๋ํ๊ฒ ๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ ์์ฃผ ๋ฐ๋๋ ๋ช ๋ น์ด๋ฅผ ๋ง์ง๋ง ๋ ์ด์ด์ ๋๋ ๊ฒ์ด ์ข๋ค.
์ต์ข ์ปจํ ์ด๋๋ ์ด ๋ชจ๋ ๋ ์ด์ด๋ฅผ ํฉ์ณ์ ํ๋์ ํตํฉ๋ ํ์ผ ์์คํ ์ฒ๋ผ ๋ณด์ฌ์ฃผ๋ ๋ฐฉ์์ผ๋ก ์คํ๋๋ค.
โ ์์ฝ
- Docker ์ด๋ฏธ์ง๋ ์ฌ๋ฌ ๊ฐ์ ๋ ์ด์ด๋ก ๊ตฌ์ฑ๋๋ค.
- ๋ ์ด์ด๋ ๊ณ์ธต์ ์ผ๋ก ์์ด๋ ํ์ผ ์์คํ ์ด๋ค.
- ์บ์ฑ ๋๋ถ์ ์ด๋ฏธ์ง ๋น๋ ์๋์ ๋์คํฌ ์ฌ์ฉ๋์ด ์ต์ ํ๋๋ค.
- ๋ณ๊ฒฝ๋ ๋ ์ด์ด๋ง ์ฌ๋น๋๋๋ฏ๋ก ํจ์จ์ ์ธ ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ๋ค.