๐ก Dockerfile์์ EXPOSE 80์ด๋ผ๊ณ ๋ช ์ํ๋ ๊ฒ์ ์ ํ ์ฌํญ์ด๋ฉฐ ์ค์ ๋ก 80๋ฒ ํฌํธ๋ฅผ ๋ ธ์ถ์ํค์ง ์๋๋ค๋ ๊ฒ์ ๋์ผ๋ก ์ง๋ ๊ธ์ ๋ง๋ฌด๋ฆฌํ์๋ค. ์ด๋ฒ์๋ ์ค์ ์ปจํ ์ด๋ ๋ด๋ถ์ ํฌํธ๋ฅผ ์ธ๋ถ๋ก ๋ ธ์ถ์ํค๋ ๋ฐฉ๋ฒ๊ณผ ์ด๋ฏธ์ง ๋ ์ด์ด์ ๋ํด ์์๋ณด๋ ค๊ณ ํ๋ค.
๋์ปค ์ด๋ฏธ์ง ๋น๋ ๋ช ๋ น์ด
docker build .
docker build -t <imageName>:<Tag> .
- "."์ ์ ๋ ฅํ๋ฉด ๋์ปค์๊ฒ ์ด ๋ช ๋ น์ ์คํํ๋ ๊ณณ๊ณผ ๋์ผํ ํด๋์ Dockerfiler์ด ์กด์ฌํจ์ ์๋ฆฐ๋ค.
- ์๋๋ ์ปค์คํ ์ด๋ฏธ์ง ์์ฑ ์ ์ฌ์ฉํ๋ค.
๋น๋ ๊ณผ์
- ๋น๋๋ฅผ ์งํํ๋ฉด ๋น๋ ๊ณผ์ ์ด ํฐ๋ฏธ๋ ์ฐฝ์ ๋์จ๋ค.
ํฌํธ ์ฐ๊ฒฐ์ ํฌํจํ ์ปจํ ์ด๋ ์คํ
docker run -p (๋ก์ปฌ ๋จธ์ ํฌํธ):(๋์ปค ์ปจํ
์ด๋ ๋ด๋ถ ํฌํธ) (image ์ด๋ฆ)
- ์ด๋ฏธ์ง ์ด๋ฆ ์์ -p ํ๋๊ทธ๋ฅผ ๋ฃ๋๋ค.
- -p ํ๋๊ทธ์ p๋ publish๋ฅผ ๋ํ๋ธ๋ค.
- ์ด๋ฅผ ํตํด ๋์ปค์๊ฒ ์ฐ๊ฒฐํ ๋ก์ปฌ ํฌํธ๋ฅผ ์๋ ค์ค ์ ์๋ค.
- -p ํ๋๊ทธ ๋ค์์ ๋์ค๋ ์ฝ๋ก (:)์ ๊ธฐ์ค์ผ๋ก ์ผ์ชฝ์๋ ๋ก์ปฌ ๋จธ์ ์ ํฌํธ ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋ค.
- ์ค๋ฅธ์ชฝ์๋ ๋์ปค ์ปจํ ์ด๋ ๋ด๋ถ์์ ์ธ๋ถ๋ก ๋ ธ์ถํ ํฌํธ๋ฅผ ๋ฃ๋๋ค.
์๋ฅผ ๋ค์ด,
docker run -p 3000:80 (image ์ด๋ฆ)
์ ๋ก์ปฌ ํฌํธ 3000๊ณผ ๋์ปค ์ปจํ ์ด๋ ๋ด๋ถ ํฌํธ 80๋ฒ์ ์ฐ๊ฒฐํจ์ ๋ปํ๋ค.
- ์ฆ ๋ก์ปฌ์์ localhost:3000๋ฒ์ผ๋ก ์ ์ํ๋ฉด ๋์ปค ๋ด๋ถ์ 80๋ฒ ํฌํธ๋ก ์ฐ๊ฒฐ๋๋ค.
์ปจํ ์ด๋ ๊ฒ์
docker ps
- ์คํ์ค์ธ ์ปจํ ์ด๋๋ฅผ ๊ฒ์ํ๋ค.
์ปจํ ์ด๋ ์ค์ง
docker stop (์ปจํ
์ด๋ ์ด๋ฆ)
- ์คํ ์ค์ธ ์ปจํ ์ด๋๋ฅผ ์ค์ง์ํจ๋ค.
- ์ปจํ ์ด๋ ์ด๋ฆ์ docker ps ๋ช ๋ น์ด๋ก ์ฐพ์ ์ ์๋ค.
๋ ์ด์ด ๊ธฐ๋ฐ ์ํคํ ์ฒ
- ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๊ฑฐ๋ ์ฌ๋น๋ํ ๋ ๋ณ๊ฒฝ๋ ๋ถ๋ถ์ด ๋ฐ๊ฒฌ๋๋ฉด ๋ณ๊ฒฝ๋ ๋ถ๋ถ์ ๋ช ๋ น๊ณผ ๊ทธ ์ดํ์ ๋ชจ๋ ๋ช ๋ น์ด ์ฌ์ค์บ ๋๋ค.
์ฒ์ ๋น๋ ์ ํ๋ฉด(docker build .)
๋ ๋ฒ์งธ ๋น๋ ์ ํ๋ฉด(docker build .)
์ ์ฌ์ง์ ํตํด ๋์ปค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ๋ช ๋ น์ด์ ๋ํด ์ฌ์คํํ์ ๋ ๊ฒฐ๊ณผ๊ฐ ์ ๊ณผ ๋์ผํ๋ค๋ ๊ฒ์ ์ธ์ํ๊ณ ์์์ ํ์ธํ ์ ์๋ค. ์ด๋ ์์ ๋๋ ํฐ๋ฆฌ๋ ์์ค ์ฝ๋๊ฐ ์ ํ ๋ณ๊ฒฝ๋์ง ์์๊ณ , ์ ํ์ผ์ด ์ถ๊ฐ๋์ง๋ ์์์ผ๋ฏ๋ก ๋ช ๋ น์ ๋ค์ ๊ฑฐ์น ํ์๊ฐ ์๋ค๊ณ ๋์ปค ๋ด๋ถ์ ์ผ๋ก ์ถ๋ก ํ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค. ๋ฐ๋ผ์ ๋ชจ๋ ๋ช ๋ น ๊ฒฐ๊ณผ๋ฅผ ์บ์ํ๊ณ ์๋ค๊ฐ ์ฌ๋น๋์์ ๋ช ๋ น์ด๋ฅผ ์ฌ์คํํ ํ์๊ฐ ์๋ค๊ณ ํ๋จํ๋ฉด ์บ์ ํด๋์ ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ฉํ๋ค. ์ด๋ฅผ ๋ ์ด์ด ๊ธฐ๋ฐ ์ํคํ ์ฒ๋ผ๊ณ ํ๋ค.
์ฌ๊ธฐ์ ์ค์ํ ๋ถ๋ถ์ด ์๋ค. ๋์ปค๋ ๋ณต์ฌํด์ผ ํ ํ์ผ์ ์ค์บํ ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ผ๋ฉด ์บ์๋ฅผ ์ฌ์ฉํ์ง๋ง, ํ์ผ ๋ณ๊ฒฝ์ ๊ฐ์งํ๋ฉด ๊ทธ ์ดํ์ ๋ชจ๋ ํ์ผ์ ๋ค์ ๋ณต์ฌ๊ฐ ๋๋ค. ์ด๋ ๋น๋ ์์์ ๋ฐ๋ผ ๋ถํ์ํ ์ฌ๋น๋ฉ์ด ์ผ์ด๋ ์ ์๋ค๋ ์ด์ผ๊ธฐ์ด๋ฉฐ, ์ด๋ฏธ์ง ์์ฑ ์๋๊ฐ ๋น๋ ์์์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ๋๋ค๋ ๋ง์ด๋ค. ์ค์ต์์ ์ฌ์ฉํ๋ Dockerfile์ ๋ค์ ๋ณด์.
ํ๋ก๊ทธ๋จ์ ์ข ์์ฑ์ ๊ด๋ฆฌํ๋ package.json์์ ๋ฌด์ธ๊ฐ๋ฅผ ๋ณ๊ฒฝํ์ง ์๋ ํ npm install์ ๋ค์ ์คํํ ํ์๊ฐ ์์ด ๋ณด์ธ๋ค. ๋จ์ํ ์์ค ์ฝ๋์ ๋ณํ๋ฅผ ์ค ์ํฉ์์๋ ์ด๋ฏธ์ง๋ฅผ ์๋ก ๋น๋ํ ๋ ๊ตณ์ด npm install๊น์ง ๋ค์ ์คํํ ํ์๊ฐ ์๋ค๋ ๋ป์ด๋ค. ์ด๋ฅผ ๊ณ ๋ คํ์ฌ ์ต์ ํ์ ํฌ์ธํธ๋ฅผ ์ฐพ์ ์ ์๋ค.
๊ธฐ์กด์๋ ๋์ปค ํ์ผ์ ์ ์ธํ ๋ชจ๋ ํ์ผ ๋ฐ ํด๋๋ฅผ ๋ณต์ฌํ๊ณ ๋์ npm install์ ์งํํ์ง๋ง, ์๋ก ์ต์ ํํ ๋ถ๋ถ์ ๋ณด๋ฉด npm install์ ์คํํ๊ธฐ ์ ์ package.json ํ์ผ์ ๋ณต์ฌํ๊ณ ์ดํ์ npm install์ ์คํํ ๋ค์ ๋ค๋ฅธ ์ฝ๋๋ฅผ ๋ณต์ฌํ๋ ์์๋ก ๋ฐ๋์๋ค. ์ฆ, ์์ค ์ฝ๋๋ฅผ ๋ณต์ฌํ๊ธฐ ์ ์ npm install ๋ ์ด์ด๋ฅผ ๋จผ์ ๋ง๋ฆ์ผ๋ก์จ ์์ค ์ฝ๋ ๋ณ๊ฒฝ์ด ์์ ๋๋ง๋ค npm install์ ์ฌ์คํํ๋ ๋ถํ์ํ ๋ถ๋ถ์ ์์ด๋ค.
์์ค ์ฝ๋๋ง ๋ณ๊ฒฝํ ์ํ๋ก ์ฌ๋น๋๋ฅผ ํ๊ฒ ๋๋ฉด ๋์ปค๊ฐ package.json ํ์ผ์ด ๋ณ๊ฒฝ๋์ง ์์์์ ํ์ธํ๋ค. npm install ์ด์ ๋จ๊ณ๊ฐ ๋ณ๊ฒฝ๋์ง ์์๊ธฐ ๋๋ฌธ์ ์บ์๋ฅผ ์ฌ์ฉํ๊ฒ ๋์ด npm install์ ๋ค์ ์คํํ์ง ์๋๋ค. ์ดํ์ ๋ณ๊ฒฝ๋ ์์ค ์ฝ๋๋ฅผ ๊ฐ์งํ์ฌ ์ฌ๋น๋ฉ์ด ์ผ์ด๋๋ฏ๋ก ํ์ํ ๋ถ๋ถ๋ง ์ฌ๋น๋ฉ์ด ์ด๋ค์ง๊ฒ ๋์๋ค.
์ด ์ค์ต์ ๊ฐ๋จํ์ง๋ง ๊ผญ ํ์ํ ์ต์ ํ ๋ฐฉ์์ ์ฝ๊ฒ ์๋ ค์ฃผ๋ฉฐ, ๋ ์ด์ด ๊ธฐ๋ฐ ์ํคํ ์ฒ๋ฅผ ์ดํดํ๋ ๋ฐ ์ข์ ์๋ผ๊ณ ์๊ฐํ๋ค.
์ฐธ๊ณ
Udemy - Docker & Kubernetes : ์ค์ ๊ฐ์ด๋
'[DevOps] > Docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋์ปค ์ด๋ฏธ์ง & ์ปจํ ์ด๋ ์ญ์ ๋ช ๋ น์ด ์ ๋ฆฌ (0) | 2023.06.21 |
---|---|
๋์ปค ์ปจํ ์ด๋์ ์ํธ์์ฉํ ์ ์๋ Interactive Mode์ ๋ํด ์์๋ณด๊ธฐ (0) | 2023.06.16 |
Docker - ์ด๋ฏธ์ง์ ์ปจํ ์ด๋ ๊ด๋ฆฌํ๊ธฐ (0) | 2023.06.06 |
Docker - ์ด๋ฏธ์ง์ ์ปจํ ์ด๋๋ฅผ ๊ณต๋ถํ๊ณ ๋์ปค ์ด๋ฏธ์ง ๋ค์ด๋ก๋ ๋ฐ ์์ฑํ๊ธฐ (0) | 2023.06.03 |
Docker๋ ๋ฌด์์ธ๊ฐ? (2) | 2023.05.20 |