ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ฐ์ํ
[์์ํ์ธ์! ๋์ปค/์ฟ ๋ฒ๋คํฐ์ค - www.yes24.com/Product/Goods/93765519]
FROM ubuntu:14/04
MAINTAINER alicek106
LABEL "purpose"="practice"
RUN apt-get update
RUN apt-get install apache2 -y
ADD test.html /var/www/html
WORKDIR /var/www/html
RUN ["/bin/bash", "-c", "echo hello >> test2.html"]
EXPOSE 80
CMD apachectl -DFOREGROUND
- FROM : ์์ฑํ ์ด๋ฏธ์ง์ ๋ฒ ์ด์ค๊ฐ ๋ ์ด๋ฏธ์ง
- Dockerfile ์์ฑ ์์ ๋ฐ๋์ ํ ๋ฒ ์ด์ ์ ๋ ฅํด์ผ ๋จ
- MAINTAINER : ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ๊ฐ๋ฐ์์ ์ ๋ณด
- ๋์ปค 1.13.0 ๋ฒ์ ์ดํ๋ก ์ฌ์ฉํ์ง ์์. ๋์ LABEL ์ฌ์ฉ
- LABEL : ์ด๋ฏธ์ง์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ
- ๋ฉํ๋ฐ์ดํฐ๋ 'ํค:๊ฐ' ํํ๋ก ์ ์ฅ๋จ
- ์ฌ๋ฌ ๊ฐ์ ๋ฉํ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ์ ์์
- docker inspect ๋ช ๋ น์ด๋ก ์ถ๊ฐ๋ ๋ฉํ ๋ฐ์ดํฐ ํ์ธ ๊ฐ๋ฅ
- RUN : ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์ปจํ ์ด๋ ๋ด๋ถ์์ ๋ช ๋ น์ด๋ฅผ ์คํ
- ADD : ํ์ผ์ ์ด๋ฏธ์ง์ ์ถ๊ฐ
- ์ถ๊ฐํ๋ ํ์ผ์ Dockerfile์ด ์์นํ ๋๋ ํฐ๋ฆฌ์ธ ์ปจํ ์คํธ(Context)์์ ๊ฐ์ ธ์ด
- JSON ๋ฐฐ์ด์ ํํ๋ก ์ฌ์ฉํ ์ ์์
- ๋ฐฐ์ด์ ๋ง์ง๋ง ์์๊ฐ ์ปจํ ์ด๋์ ์ถ๊ฐ๋ ์์น
- WORKDIR : ์คํํ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ํ๋
- ๋ฐฐ์ ์ ธ์์ cd ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ ๊ฒ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ
- EXPOSE : Dockerfile์ ๋น๋๋ก ์์ฑ๋ ์ด๋ฏธ์ง์์ ๋ ธ์ถํ ํฌํธ๋ฅผ ์ค์ ํจ
- CMD : ์ปจํ
์ด๋๊ฐ ์์๋ ๋๋ง๋ค ์คํํ ๋ช
๋ น์ด(์ปค๋งจ๋)๋ฅผ ์ค์ ํ๋ฉฐ, Dockerfile์์ ํ ๋ฒ๋ง ์ฌ์ฉํ ์ ์์
- docker run ๋ช ๋ น์ด์์ ์ปค๋งจ๋ ๋ช ๋ น์ค ์ธ์๋ฅผ ์ ๋ ฅํ๋ฉด Dockerfile์์ ์ฌ์ฉํ CMD์ ๋ช ๋ น์ด๋ run์ ์ปค๋งจ๋๋ก ๋ฎ์ด ์ฐ์
- ENV : Dockerfile์์ ์ฌ์ฉ๋ ํ๊ฒฝ๋ณ์๋ฅผ ์ง์
- ์ค์ ํ ํ๊ฒฝ๋ณ์๋ ${ENV_NAME} ๋๋ $ENV_NAME์ ํํ๋ก ์ฌ์ฉ
- ์ด๋ฏธ์ง์๋ ์ ์ฅ๋จ
- run ๋ช ๋ น์ด์์ -e ์ต์ ์ ์ฌ์ฉํด ๊ฐ์ ์ด๋ฆ์ ํ๊ฒฝ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ๊ธฐ์กด์ ๊ฐ์ ๋ฎ์ด์ฐ์ฌ์ง
- ๊ฐ์ด ์ค์ ๋์ง ์์ ๊ฒฝ์ฐ์ ๊ฐ์ด ์ค์ ๋ ๊ฒฝ์ฐ๋ฅผ ๊ตฌ๋ถํด ์ฌ์ฉํ ์ ์์
- ${env_name:-vale} : env_name์ด๋ผ๋ ํ๊ฒฝ๋ณ์์ ๊ฐ์ด ์ค์ ๋์ง ์์์ผ๋ฉด ์ด ํ๊ฒฝ๋ณ์์ ๊ฐ์ value๋ก ์ฌ์ฉํจ
- ${env_name:+vale} : env_name์ ๊ฐ์ด ์ค์ ๋์ด ์์ผ๋ฉด value๋ฅผ ๊ฐ์ผ๋ก ์ฌ์ฉํ๊ณ ๊ฐ์ด ์ค์ ๋์ง ์์์ผ๋ฉด ๋น ๋ฌธ์์ด์ ์ฌ์ฉํจ
- VOLUME : ๋น๋๋ ์ด๋ฏธ์ง๋ก ์ปจํ ์ด๋๋ฅผ ์์ฑํ์ ๋ ํธ์คํธ์ ๊ณต์ ํ ์ปจํ ์ด๋ ๋ด๋ถ์ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ค์
- ARG : build ๋ช
๋ น์ด๋ฅผ ์คํํ ๋ ์ถ๊ฐ๋ก ์
๋ ฅ์ ๋ฐ์ Dockerfile ๋ด์์ ์ฌ์ฉ๋ ๋ณ์์ ๊ฐ์ ์ค์ ํจ
- ๊ธฐ๋ณธ๊ฐ์ ์ง์ ํ ์๋ ์์
- build ๋ช ๋ น์ด๋ฅผ ์คํํ ๋ --build-arg ์ต์ ์ ์ฌ์ฉํด Dockerfile์ ARG์ ๊ฐ์ ์ ๋ ฅ
- USER : ์ปจํ
์ด๋ ๋ด์์ ์ฌ์ฉ๋ ์ฌ์ฉ์ ๊ณ์ ์ ์ด๋ฆ์ด๋ UID๋ฅผ ์ค์ ํ๋ฉด ๊ทธ ์๋์ ๋ช
๋ น์ด๋ ํด๋น ์ฌ์ฉ์ ๊ถํ์ผ๋ก ์คํ๋จ
- ๋ฃจํธ ๊ถํ์ด ํ์ํ์ง ์๋ค๋ฉด USER๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํจ
- ONBUILD : ๋น๋๋ ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋ค๋ฅธ ์ด๋ฏธ์ง๊ฐ Dockerfile๋ก ์์ฑ๋ ๋ ์คํํ ๋ช
๋ น์ด๋ฅผ ์ถ๊ฐ
- ๋ถ๋ชจ ์ด๋ฏธ์ง์ ์์ ์ด๋ฏธ์ง์๋ง ์ ์ฉ๋๋ฉฐ ์์ ์ด๋ฏธ์ง๋ ONBUILD ์์ฑ์ ์์๋ฐ์ง ์์
- ์ด๋ฏธ์ง๊ฐ ๋น๋ํ๊ฑฐ๋ ํ์ฉํ ์์ค์ฝ๋๋ฅผ ONBUILD ADD๋ก ์ถ๊ฐํด ์ข ๋ ๊น๋ํ๊ฒ Dockerfile์ ์ฌ์ฉํ ์ ์์
- STOPSIGNAL : ์ปจํ
์ด๋๊ฐ ์ ์ง๋ ๋ ์ฌ์ฉ๋๋ฆฌ ์์คํ
์ฝ์ ์ข
๋ฅ๋ฅผ ์ง์
- ๊ธฐ๋ณธ์ SIGTERM
- docker run ๋ช ๋ น์ด์ --stop-signal ์ต์ ์ผ๋ก ์ปจํ ์ด๋์ ๊ฐ๋ณ์ ์ผ๋ก ์ค์ ํ ์ ์์
- HEALTHCHECK : ์ด๋ฏธ์ง๋ก๋ถํฐ ์์ฑ๋ ์ปจํ
์ด๋์์ ๋์ํ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์ํ๋ฅผ ์ฒดํฌํ๋๋ก ์ค์
- ์ปจํ ์ด๋ ๋ด๋ถ์์ ๋์ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋์ง๋ ์์์ผ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋์ํ๊ณ ์์ง ์์ ์ํ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ์ฉ
- --interval : ์ปจํ ์ด๋์ ์ํ๋ฅผ ์ฒดํฌํ๋ ์ฃผ๊ธฐ
- --timeout : ์ฌ๊ธฐ์ ์ค์ ๋ ์๊ฐ์ ์ด๊ณผํ๋ฉด ์ํ ์ฒดํฌ์ ์คํจํ ๊ฒ์ผ๋ก ๊ฐ์ฃผ
- --retries : ์ฌ๊ธฐ์ ์ค์ ๋ ํ์๋งํผ ์ํ ์ฒดํฌ์ ์คํจํ๋ฉด ํด๋น ์ปจํ ์ด๋๋ unhealthy ์ํ๋ก ์ค์ ๋จ
- SHELL : ์ฌ์ฉํ๋ ค๋ ์
ธ์ ๋ช
์์ ์ผ๋ก ์ง์
- ๋ฆฌ๋ ์ค ๊ธฐ๋ณธ์ "/bin/sh -c", ์๋์ฐ๋ "cmd /S /C"
- COPY : ๋ก์ปฌ ๋๋ ํฐ๋ฆฌ์์ ์ฝ์ด ๋ค์ธ ์ปจํ ์คํธ๋ก๋ถํฐ ์ด๋ฏธ์ง์ ํ์ผ์ ๋ณต์ฌํ๋ ์ญํ
- ADD : ๋ก์ปฌ ํ์ผ, ์ธ๋ถ URL ๋ฐ tar ํ์ผ์์๋ ํ์ผ์ ์ถ๊ฐํ ์ ์์
- tar ํ์ผ์ ์๋์ผ๋ก ํด์ ํด์ ์ถ๊ฐํจ
- ADD๋ก URL์ด๋ tar ํ์ผ์ ์ถ๊ฐํ ๊ฒฝ์ฐ ์ด๋ฏธ์ง์ ์ ํํ ์ด๋ค ํ์ผ์ด ์ถ๊ฐ๋ ์ง ์ ์ ์๊ธฐ ๋๋ฌธ์ ๊ถ์ฅํ์ง ์์
- ENTRYPOINT, CMD
- CMD : ์ปจํ ์ด๋๊ฐ ์์๋ ๋ ์ํํ ๋ช ๋ น์ ์ง์
- ENTRYPOINT : ์ปจํ
์ด๋๊ฐ ์์๋ ๋ ์ํํ ๋ช
๋ น์ ์ง์
- ์ปค๋งจ๋๋ฅผ ์ธ์๋ก ๋ฐ์ ์ฌ์ฉํ ์ ์๋ ์คํฌ๋ฆฝํธ์ ์ญํ ์ ์ํ
- ์ปจํ ์ด๋์ entrypoint๊ฐ ์ค์ ๋๋ฉด run ๋ช ๋ น์ด์ ๋งจ ๋ง์ง๋ง์ ์ ๋ ฅ๋ cmd๋ฅผ ์ธ์๋ก ์ผ์ ๋ช ๋ น์ด๋ฅผ ์ถ๋ ฅํจ
- entrypoint๊ฐ ์ค์ ๋์ง ์์๋ค๋ฉด cmd์ ์ค์ ๋ ๋ช ๋ น์ด๋ฅผ ๊ทธ๋๋ก ์คํํ์ง๋ง entrypoint๊ฐ ์ค์ ๋๋ค๋ฉด cmd๋ ๋จ์ง entrypoint์ ๋ํ ์ธ์์ ๊ธฐ๋ฅ์ ํจ
- entrypoint๋ฅผ ์ด์ฉํ ์คํฌ๋ฆฝํธ ์คํ
- ์ผ๋ฐ์ ์ผ๋ก๋ ์คํฌ๋ฆฝํธ ํ์ผ์ entrypoint์ ์ธ์๋ก ์ฌ์ฉํด ์ปจํ ์ด๋๊ฐ ์์๋ ๋๋ง๋ค ํด๋น ์คํฌ๋ฆฝํธ ํ์ผ์ ์คํํ๋๋ก ์ค์ ํจ
- ์คํฌ๋ฆฝํธ ํ์ผ์ ์ด๋ฆ์ entrypoint์ ์ธ์๋ก ์ ๋ ฅํจ
- ์คํํ ์คํฌ๋ฆฝํธ ํ์ผ์ ์ปจํ ์ด๋ ๋ด๋ถ์ ์กด์ฌํด์ผ ํจ(์ด๋ฏธ์ง ๋ด์ ์คํฌ๋ฆฝํธ ํ์ผ์ด ์กด์ฌํด์ผํจ)
- ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ ๋ ์ด๋ฏธ์ง๊ฐ ์๋ํ๋ ๋จ๊ณ
- 1. ์ด๋ค ์ค์ ๋ฐ ์คํ์ด ํ์ํ์ง์ ๋ํด ์คํฌ๋ฆฝํธ๋ก ์ ๋ฆฌ
- 2. ADD ๋๋ COPY๋ก ์คํฌ๋ฆฝํธ๋ฅผ ์ด๋ฏธ์ง๋ก ๋ณต์ฌ
- 3. ENTRYPOINT๋ฅผ ์ด ์คํฌ๋ฆฝํธ๋ก ์ค์
- 4. ์ด๋ฏธ์ง๋ฅผ ๋น๋ํด ์ฌ์ฉ
- 5. ์คํฌ๋ฆฝํธ์์ ํ์ํ ์ธ์๋ docker run ๋ช ๋ น์ด์์ cmd๋ก entrypoint์ ์คํฌ๋ฆฝํธ์ ์ ๋ฌ
- JSON ๋ฐฐ์ด ํํ์ ์ผ๋ฐ ํ์์ ์ฐจ์ด์
- JSON ๋ฐฐ์ด ํํ๊ฐ ์๋ CMD์ ENTRYPOINT๋ฅผ ์ฌ์ฉํ๋ฉด ์ค์ ๋ก ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ๋ cmd์ entrypoint์ /bin/sh -c๊ฐ ์์ ์ถ๊ฐ๋จ
- JSON ๋ฐฐ์ด ํํ๋ก ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด ์ ๋ ฅ๋ ๋ช ๋ น์ด๊ฐ ๊ทธ๋๋ก ์ด๋ฏธ์ง์์ ์ฌ์ฉ๋จ
- ๋น๋๋ docker build ๋ช ๋ น์ด๋ก ์คํํ๋ค
- ์ด๋ฏธ์ง ๋น๋ ์ค ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด build ๋ช ๋ น์ด๋ ์ค์ง๋๊ณ ์ด๋ฏธ์ง ๋ ์ด์ด ์์ฑ์ ์ํด ๋ง์ง๋ง์ผ๋ก ์์ฑ๋ ์์ ์ปจํ ์ด๋๊ฐ ์ญ์ ๋์ง ์์ ์ฑ๋ก ๋จ๊ฒ ๋จ(<none>:<none>)
๋ฐ์ํ
'๐โ๏ธโ๏ธโ๏ธ๐ > docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋์ปค ๋ช ๋ น์ด ๋ชจ์ (0) | 2021.07.22 |
---|---|
mac์์ docker๋ฅผ ์คํํ๋ ๋ฐฉ๋ฒ์ ์ฐพ๋ค๊ฐ linuxkit, moby project, xhyve, hyperkit์ ๋ํด์๋ ์ฐพ์๋ณธ ๊ธ (0) | 2020.12.26 |
ํ์ดํผ๋ฐ์ด์ (hypervisor)๋? (0) | 2020.12.26 |
๋๊ธ
๋ฐ์ํ
๊ณต์ง์ฌํญ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ
- Total
- Today
- Yesterday
๋งํฌ
TAG
- ๋๋ฉ์ธ์ฃผ๋์ค๊ณ
- ์คํ๋ง
- Spring
- ์ฝํ๋ฆฐ
- springboot
- kotlin In Action
- ํด๋ฆฐ์ฝ๋
- ๋์ปค
- gradle
- docker pull limit
- IntelliJ
- cacheable
- linuxkit
- java
- JavaScript
- Kubernetes
- k8s
- kotlin
- ์ฟ ๋ฒ๋คํฐ์ค
- ddd
- docker
- ์คํ๋ง๋ถํธ
- ์๋ฐ
- gasmask
- docker for mac
- ImagePullBackOff
- back merge
- clean code
- QuickTimePlayer
- ์๋ฐ์คํฌ๋ฆฝํธ
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
๊ธ ๋ณด๊ดํจ