Docker ์ด๋ฏธ์ง๋ DockerHub๋ฅผ ์ดํด ๋ค์ด๋ฐ์์ ์ฌ์ฉํ ์ ์๋ค.
์ด Docker ์ด๋ฏธ์ง๋ค๋ ๋๊ตฐ๊ฐ ๋ง๋ค์ด์ DockerHub์ ์ฌ๋ ค๋์ ๊ฒ์ด๋ค.
Dockerfile์ ์ด์ฉํด์ Docker ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค ์ ์๋ค!
FROM
์ ๋ฒ ์ด์ค ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ ์ญํ ์ ํ๋ค. Docker ์ปจํ
์ด๋๋ฅผ ํน์ ์ด๊ธฐ ์ด๋ฏธ์ง
๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ถ๊ฐ์ ์ธ ์
ํ
์ ํ ์ ์๋ค.ํน์ ์ด๊ธฐ ์ด๋ฏธ์ง
๊ฐ ๊ณง ๋ฒ ์ด์ค ์ด๋ฏธ์ง์ด๋ค.#๋ฌธ๋ฒ
FROM [์ด๋ฏธ์ง๋ช
]
FROM [์ด๋ฏธ์ง๋ช
]:[ํ๊ทธ๋ช
]
ํ๊ทธ๋ช
์ ์ ์ง ์์ผ๋ฉด ํด๋น ์ด๋ฏธ์ง์ ์ต์ (lastest) ๋ฒ์ ์ ์ฌ์ฉํ๋ค.COPY
๋ ํธ์คํธ ์ปดํจํฐ์ ์๋ ํ์ผ์ ๋ณต์ฌํด์ ์ปจํ
์ด๋๋ก ์ ๋ฌํ๋ค.#๋ฌธ๋ฒ
COPY [ํธ์คํธ ์ปดํจํฐ์ ์๋ ๋ณต์ฌํ ํ์ผ์ ๊ฒฝ๋ก] [์ปจํ
์ด๋์์ ํ์ผ์ด ์์นํ ๊ฒฝ๋ก]
#์์
# ํ์ผ๋ณต์ฌ
COPY app.txt /app.txt
# ํด๋ ๋ณต์ฌ (๋ค์๋ฅผ /๋ก ๋ซ์์ค์ผํจ)
COPY my-app /my-app/
# ์์ผ๋์นด๋ ์ฌ์ฉ
COPY *.txt /text-files/ # ํ์ฅ์๊ฐ .txt์ธ ๋ชจ๋ ํ์ผ์ /text-files/ ํด๋ ์์ผ๋ก ๋ณต์ฌ
# .dockerignore
# ํน์ ํ์ผ ๋๋ ํด๋๋ฅผ `COPY`ํ๊ณ ์ถ์ง ์์ ๋ ์ฌ์ฉ
COPY app.txt /app.txt
COPY my-app /my-app/
ํด๋ ์์ ์๋ ๋ชจ๋ ํ์ผ ๋ณต์ฌ.
์์ผ๋์นด๋ ์ฌ์ฉ
COPY *.txt /text-files/
/text-files
๋ผ๊ณ ์ ์ผ๋ฉด ์ ๋๊ณ , /text-files/
๋ผ๊ณ ์ ์ด์ผ text-files
๋ผ๋ ๋๋ ํ ๋ฆฌ ์์ ํ์ผ๋ค์ด ์ ์์ ์ผ๋ก ๋ณต์ฌ ๋๋ค..dockerignore
์ฌ์ฉCOPY
ํ๊ณ ์ถ์ง ์์ ๋ ์ฌ์ฉํ๋ค..dockerignore
ํ์ผ์ ๋ง๋ ๋ค.#.dockerignore
readme.txt
readme.txt
ํ์ผ์ ๋ณต์ฌ๋์ง ์์๊ฑธ ํ์ธํ ์ ์๋ค.ENTRYPOINT
๋ ์ปจํ
์ด๋๊ฐ ์์ฑ๋๊ณ ์ต์ด๋ก ์คํํ ๋ ์ํ๋๋ ๋ช
๋ น์ด.#๋ฌธ๋ฒ
ENTRYPOINT [๋ช
๋ น๋ฌธ...]
#์์1
ENTRYPOINT ["node", "dist/main.js"]
#์์2
ENTRYPOINT ["/bin/bash", "-c", "echo hello"]
RUN
์ ์ด๋ฏธ์ง ์์ฑ ๊ณผ์ ์์ ๋ช
๋ น์ด๋ฅผ ์คํ์์ผ์ผ ํ ๋ ์ฌ์ฉํ๋ค.#๋ฌธ๋ฒ
RUN [๋ช
๋ น๋ฌธ]
#์์
RUN npm install
RUN
vs ENTRYPOINT
RUN
์ ์ด๋ฏธ์ง ์์ฑ ๊ณผ์ ์์ ํ์ํ ๋ช
๋ น์ด๋ฅผ ์คํ์ํฌ ๋ ์ฌ์ฉ.ENTRYPOINT
๋ ์์ฑ๋ ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ปจํ
์ด๋๋ฅผ ์์ฑํ ์งํ์ ๋ช
๋ น์ด๋ฅผ ์คํ์ํฌ ๋ ์ฌ์ฉ.FROM ubuntu
RUN apt update && apt install -y git
ENTRYPOINT["/bin/bash". "-c", "sleep 500"]
WORKDIR
์ผ๋ก ์์
๋๋ ํ ๋ฆฌ๋ฅผ ์ ํํ๋ฉด ๊ทธ ์ดํ์ ๋ฑ์ฅํ๋ ๋ชจ๋ RUN
, CMD
, ENTRYPOINT
, COPY
, ADD
๋ช
๋ น๋ฌธ์ ํด๋น ๋๋ ํ ๋ฆฌ๋ฅผ ๊ธฐ์ค์ผ๋ก ์คํ๋๋ค.WORKDIR
์ ์ฐ์ง ์์ผ๋ฉด ์ปจํ
์ด๋ ๋ด๋ถ์ ์กด์ฌํ๋ ๊ธฐ์กด ํ์ผ๋ค๊ณผ ๋ค์์ธ๋ค.#๋ฌธ๋ฒ
WORKDIR [์์
๋๋ ํ ๋ฆฌ๋ก ์ฌ์ฉํ ์ ๋ ๊ฒฝ๋ก]
#์์
WORKDIR /usr/src/app
EXPOSE
๋ ์ปจํ
์ด๋ ๋ด๋ถ์์ ์ด๋ค ํฌํธ์ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ์ง๋ฅผ ๋ฌธ์ํํ๋ ์ญํ ๋ง ํ๋ค.docker -p 8080:8080 ...
์ ๊ฐ์ ๋ช
๋ น์ด์ -p
์ต์
๊ณผ ๊ฐ์ ์ญํ ์ ์ผ์ฒด ํ์ง ์๋๋ค.EXPOSE
๋ช
๋ น์ด๋ ์ฐ๋ ์ ์ฐ๋ ์๋ํ๋ ๋ฐฉ์์๋ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ค.#๋ฌธ๋ฒ
EXPOSE [ํฌํธ๋ฒํธ]
#์์
EXPOSE 3000