ํฐ์คํ ๋ฆฌ ๋ทฐ
[TIL] “Utility Container”๋ก ์์ ํ๊ธฐ & ์ปจํ ์ด๋์์ ๋ช ๋ น ์คํํ๊ธฐ
NakyungIm 2022. 7. 29. 15:41๋ณธ ํฌ์คํ ์ Udemy 'Docker&Kubernetes:์ค์ ๊ฐ์ด๋-2022๋ ํ' ๊ฐ์๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑํ์ต๋๋ค.
Utility Container๋?
- Application Container(Environment, My App) → docker run myapp→
- Utility Container(Environment) → docker run mynpm init →
์ง๊ธ๊น์ง Application์ ๋์ปค๋ก ์คํ์์ผฐ๋ค๋ฉด, Utility Container๋ ํน์ ํ๊ฒฝ๋ง ํฌํจํ๋ ์ปจํ ์ด๋์ด๋ค.
Utility Container ์ฌ์ฉ ์ด์
๋ก์ปฌ ์์คํ ์ ๋ ธ๋๋ฅผ ์ค์นํ์ง ์๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค๊ธฐ ์ํด์
๋ ธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค๋ ค๋ฉด package.json ์ข ์์ฑ ํ์ผ์ด ์์ด์ผ ํ๋ค.
- ๋ฐฉ๋ฒ1 : ์ง์ ์์ฑ
- ๋ฐฉ๋ฒ2 : npm init → package.json ํ์ผ ์์ฑ
- npm init์ node.js๊ฐ ๋ก์ปฌ์ ์ค์น๋์ด ์์ด์ผ ๋ช ๋ น์ด ์คํ ๊ฐ๋ฅ
Container์์ ๋ช ๋ น์ ์คํํ๋ ๋ค์ํ ๋ฐฉ๋ฒ
docker run -it node
- -it : interactive mode
docker run -it -d node
- -d : detach mode
docker exec -it (์ปจํ ์ด๋๋ช ) npm init : ์คํ ์ค์ธ ์ปจํ ์ด๋์ ํน์ (์ถ๊ฐ) ๋ช ๋ น ์คํ ๊ฐ๋ฅ
- exec๋ ์ธํฐ๋ ํฐ๋ธ ๋ชจ๋(-it)์์๋ง ์์ ๊ฐ๋ฅ
- ์ปจํ ์ด๋ ๋ด๋ถ์ npm init ์คํ
- ์ปจํ ์ด๋๋ฅผ ์ค์งํ์ง ์๊ณ ์ปจํ ์ด๋ ๋ด๋ถ์ ์์ฑ๋ ํ์ผ์ ์ฝ์ ์ ์์ผ๋ฏ๋ก ์ ์ฉ
docker run -it node npm init
- npm init ์คํ
- npm init ์๋ฃ๋๋ฉด ์ปจํ ์ด๋๊ฐ ์ค์ง๋๋ฏ๋ก ๋ณ๋ก ์์ ์ฉ
Utility Container ๊ตฌ์ถ
Utility Container ๊ตฌ์ถ ์, ์์ฒด ์ด๋ฏธ์ง๊ฐ ํ์ํ๋ฏ๋ก Dockerfile ์ถ๊ฐํ๊ธฐ.
FROM node:14-alpine
# alpine : ๊ฒฝ๋ ๋ฒ์ , slim
WORKDIR /app
docker build -t node-util .
- -t : ํ๊ทธ, default:latest
docker run -it -v (๋ฐ์ธ๋๋ง์ดํธ ์ ๋๊ฒฝ๋ก):/app node-util npm init
- ๋ถ๊ฐ์ ์ธ ๋๊ตฌ(node.js) ์ค์นํ ํ์ ์๋ค๋ ์ฅ์
- ์ปจํ ์ด๋์์ ์์ฑํ WORKDIR ์ธ app ํด๋๋ฅผ ๋ก์ปฌ์์๋ ์ฌ์ฉํ ์ ์์
- ์ฆ, ๋ก์ปฌ ์์คํ ์ ๋ ธ๋๋ฅผ ์ค์นํ์ง ์๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์
ENTRYPOINT ํ์ฉ
FROM node:14-alpine
# alpine : ๊ฒฝ๋ ๋ฒ์ , slim
WORKDIR /app
ENTRYPOINT [ 'npm' ]
docker run -it -v (๋ฐ์ธ๋๋ง์ดํธ ์ ๋๊ฒฝ๋ก):/app node-util npm intall
ENTRYPOINT๋ CMD ๋ช ๋ น์ด์ ์ ์ฌํ์ง๋ง ๋ค๋ฅด๋ค.
- CMD ์ฌ์ฉ ๊ฒฝ์ฐ : docker run ๋ค์ ์ด๋ฏธ์ง ์ด๋ฆ ๋ค์์ ๋ช ๋ น์ด(npm install)๋ง ๋ฎ์ด์ด๋ค.
- ENTRYPOINT ์ฌ์ฉ ๊ฒฝ์ฐ : docker run ๋ค์ ๋ช ๋ น์ด(-it -v (๋ฐ์ธ๋๋ง์ดํธ ์ ๋๊ฒฝ๋ก):/app node-util npm intall)๋ฅผ ๋ฎ์ด์ด๋ค.
docker build -t mynpm .
docker run -it -v (๋ฐ์ธ๋๋ง์ดํธ ์ ๋๊ฒฝ๋ก):/app mynpm init
- npm init ์ค์ ์ง๋ฌธ์ด ๋์ค๊ณ package.json ํ์ผ ์์ฑ๋จ
- ๋ฐ๋ก ์ข ๋ฃ๋จ
docker run -it -v (๋ฐ์ธ๋๋ง์ดํธ ์ ๋๊ฒฝ๋ก):/app mynpm install express —save
- express install ํ package-lock.json ํ์ผ ์์ฑ. ๋ก์ปฌ์ ์ ์ฅ๋จ. ๋ฐ๋ก ์ข ๋ฃ๋จ
๋จ์ ์? ๋ช ๋ น์ด๊ฐ ๋๋ฌด ๊น
ํด๊ฒฐ๋ฐฉ๋ฒ? docker-compose
Docker Compose ์ฌ์ฉ
docker-compose.yaml ์ถ๊ฐ
version: "3.8"
services:
npm:
build: ./
stdin_open: true
tty: true
volumes:
- ./:/app
docker-compose run —rm npm init
- package.json ์์ฑ
- —rm : ์ปจํ ์ด๋ ์ค์ง๋๋ฉด ์๋ ์ญ์ . ์ฌ์ฉ ์ํ๋ฉด ์ค์ง๋์ฑ๋ก ์์ด๊ณ ์ญ์ ๋ ์๋๋ค.
- Total
- Today
- Yesterday
- ๋ฆฌ๋์ค
- ๋ฆฌ์กํธ ๋ ๋๋ง
- ๋ฆฌ์กํธ ์ปดํฌ๋ํธ
- ๋ฆฌ์กํธ ๊ณต์๋ฌธ์
- machine learning
- docker
- ๋ฆฌ์กํธ ๊ธฐ์ด
- ๊ตฌ๊ธ
- ๋ฆฌ์กํธ ํ
- ๋ฆฌ์กํธ setState
- Cloud
- React
- ๋ฆฌ์กํธ state
- ํ ์ํ๋ก์ฐ
- ์ปดํฌ๋ํธ
- ๋์ปค
- ๋ฆฌ์กํธ
- ๋จธ์ ๋ฌ๋
- ML
- ๋ฆฌ์กํธ useEffect
- Docker&Kubernetes:์ค์ ๊ฐ์ด๋-2022๋ ํ
- ์ํ์ฝ๋ฉ ๋ฆฌ์กํธ
- ๋จ๊ธฐ์ง์ค๊ณผ์
- React Hook
- ๊ตฌ๊ธํด๋ผ์ฐ๋ํ๋ซํผ
- React DOM
- ๋ฆฌ๋์ค store
- GCP
- ํด๋ผ์ฐ๋
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |