ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฐ˜์‘ํ˜•

[์‹œ์ž‘ํ•˜์„ธ์š”! ๋„์ปค/์ฟ ๋ฒ„๋„คํ‹ฐ์Šค - 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>)
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๋ฐ˜์‘ํ˜•
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2025/01   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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
๊ธ€ ๋ณด๊ด€ํ•จ