Jayden1116 2022. 2. 5. 00:22

ํ‚ค์›Œ๋“œ

  • Docker
  • Docker Hub
  • Docker Image
  • Docker Container
  • Docker Compose

Client ์™€ Server

๋‘˜ ๋‹ค ์ปดํ“จํ„ฐ

Client : ๊ณ ๊ฐ, ์ฆ‰ ๋ญ”๊ฐ€๋ฅผ ์š”์ฒญํ•˜๋Š” ์—ญํ• 
Server : ์„œ๋ฒ„, ์ฆ‰ ๋ญ”๊ฐ€๋ฅผ ์ œ๊ณตํ•˜๋Š” ์—ญํ•  -> ๋ณดํ†ต IDC(Internet Data Center)์— ์„œ๋ฒ„์šฉ ์ปดํ“จํ„ฐ๋“ค์ด ๋ƒ‰๊ฐ๊ธฐ์™€ ํ•จ๊ป˜ ๊ตฌ์ถ•๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

ip ์™€ port

IP

  • Internet Protocol๋กœ ์ธํ„ฐ๋„ท ์ƒ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ์†Œ ์ฒด๊ณ„๋ฅผ ์˜๋ฏธ
  • ํ˜„์žฌ๋Š” ๋„ค ๋ฉ์ด์˜ ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ง„ IPv4๊ฐ€ ์ฃผ๋ฅผ ์ด๋ฃจ๊ณ  ์žˆ๊ณ  ์ ์ฐจ IPv6๋กœ ์ „ํ™˜ํ•˜๋Š” ์ค‘(ip ์ฃผ์†Œ๊ฐ€ ๋ถ€์กฑํ•˜๊ธฐ ๋•Œ๋ฌธ์—)
  • localhost, 127.0.0.1 : ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ ๋กœ์ปฌPC๋ฅผ ์ง€์นญ(๋ณธ์ธ PC)

PORT

  • IP ๋‚ด์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒํ˜ธ ๊ตฌ๋ถ„(ํ”„๋กœ์„ธ์Šค ๊ตฌ๋ถ„)์„ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ฒˆํ˜ธ
  • ํฌํŠธ ์ˆซ์ž๋Š” IP ์ฃผ์†Œ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” PC์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋Š” ํ†ต๋กœ(์ฑ„๋„)์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฏธ ์‚ฌ์šฉ์ค‘์ธ ํฌํŠธ๋Š” ์ค‘๋ณตํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • ex) 127.0.0.1 ๋’ค์— :3000 ๊ณผ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ํ‘œํ˜„

์ง‘์ฃผ์†Œ์—์„œ IP๊ฐ€ ์•„ํŒŒํŠธ ์ด๋ฆ„๊นŒ์ง€ ๋‚˜ํƒ€๋‚ธ๋‹ค๋ฉด, ํฌํŠธ๋Š” ๊ทธ ๋’ค์— ๋ฌด์Šจ ๋™, ๋ช‡ ํ˜ธ ์ธ์ง€ ๋ฅผ ๋‚˜ํƒ€๋‚ด์ฃผ๋Š” ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.

Linux Container

๋ฆฌ๋ˆ…์Šค ๊ธฐ๋ฐ˜์˜ ๊ธฐ์ˆ  ์ค‘ ํ•˜๋‚˜

  • ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ชจ์•„์„œ ๋ณ„๋„์˜ ์„œ๋ฒ„์ฒ˜๋Ÿผ ๊ตฌ์„ฑ
  • ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ด๋ฃจ๋Š” ๋„คํŠธ์›Œํฌ ์„ค์ •, ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋“ฑ์˜ ์‹œ์Šคํ…œ ์ž์›์€ ๊ฐ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ์†Œ์œ 
  1. ํ”„๋กœ์„ธ์Šค์˜ ๊ตฌํšํ™”
  • ํŠน์ • ์ปจํ…Œ์ด๋„ˆ์—์„œ ์ž‘๋™ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋Š” ๊ทธ ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—์„œ๋งŒ ์—‘์„ธ์Šค ๊ฐ€๋Šฅ
  • ํŠน์ • ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค๋ฅธ ์ปจํ…Œ์ด๋„ˆ์˜ ํ”„๋กœ์„ธ์Šค์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์—†์Œ
  1. ๋„คํŠธ์›Œํฌ์˜ ๊ตฌํšํ™”
  • ๊ธฐ๋ณธ์ ์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ ํ•˜๋‚˜ ๋‹น IP ์ฃผ์†Œ๊ฐ€ ํ• ๋‹น
  1. ํŒŒ์ผ์‹œ์Šคํ…œ์˜ ๊ตฌํšํ™”
  • ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ๊ตฌํšํ™”
  • ๋”ฐ๋ผ์„œ, ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ์—์„œ์˜ ๋ช…๋ น์ด๋‚˜ ํŒŒ์ผ ๋“ฑ์˜ ์—‘์„ธ์Šค๋ฅผ ์ œํ•œ ๊ฐ€๋Šฅ

@ ๊ฐ€์ƒ๋จธ์‹ ๊ณผ๋Š” ๋น„์Šทํ•˜์ง€๋งŒ ์กฐ๊ธˆ ๋‹ค๋ฅธ ๊ธฐ์ˆ !

Docker ํŠน์ง•

VM(Virtual Machine ; ๊ฐ€์ƒ๋จธ์‹ )์€ ๊ฒฉ๋ฆฌ์„ฑ์„ ์ค‘์‹ฌ์œผ๋กœ ํ•œ ๋ฐ˜๋ฉด, Docker์˜ ์žฅ์ ์€ Container์˜ ๊ด€์ ์—์„œ ๋น ๋ฅด๊ณ , ๊ฐœ๋ฐœ์ž์™€ ์‚ฌ์šฉ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์ด์ ์„ ์ œ๊ณต

์ฐธ๊ณ :Docker HUB -> ์—ฌ๋Ÿฌ image๋ฅผ ์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Docker CLI(Command Line Interface)

์ฐธ๊ณ :Docker Docs -> CLI ๊ณต์‹๋ฌธ์„œ๋Š” ๋Š˜ ์ค‘์š”!!

  • ๋„์ปค๋ฅผ ์ด์šฉํ•จ์— ์žˆ์–ด ๋ช…๋ น์–ด, ์˜ต์…˜ ๋“ฑ์„ ํ™•์ธ ๊ฐ€๋Šฅ
  • CLI๋ฟ ์•„๋‹ˆ๋ผ ์‚ฌ์šฉ๋ฒ•๊ณผ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ• ๋“ฑ, Docker Docs์—์„œ ํ™•์ธ ๊ฐ€๋Šฅ
    • ์‚ฌ์šฉ๋ฒ• : Docker CLI, Docker-Compose CLI, API Reference
    • ํ™˜๊ฒฝ ๋ฐ ๋นŒ๋“œ ํŒŒ์ผ ๊ตฌ์„ฑ : DockerFile, Docker-Compose File
  • ๋ฐ˜๋“œ์‹œ ๊ณต์‹๋ฌธ์„œ๋Š” ๋ผ๊ณ  ์‚ด๋„๋ก ํ•  ๊ฒƒ! ์ œํ’ˆ์— ๋Œ€ํ•œ ์„ค๋ช…์„œ๋ผ ์ƒ๊ฐํ•˜๋ฉด ๋ฐ˜๋“œ์‹œ ๋ด์•ผํ•˜๋Š” ๊ฒƒ!

Docker Registry/Images/Container

Registry

Registry

  • ๋„์ปค ์ด๋ฏธ์ง€๊ฐ€ ๊ด€๋ฆฌ๋˜๋Š” ๊ณต๊ฐ„
  • ๊ธฐ๋ณธ์ ์œผ๋กœ Docker HUB๋ฅผ ๊ธฐ๋ณธ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋กœ ์ง€์ •
  • ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋Š” Docker HUB, Private Docker HUB, ํšŒ์‚ฌ ๋‚ด๋ถ€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๋“ฑ์œผ๋กœ ๋‚˜๋‰  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Repository

  • ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๋‚ด์— ๋„์ปค ์ด๋ฏธ์ง€๊ฐ€ ์ €์žฅ๋˜๋Š” ๊ณต๊ฐ„
  • ์ด๋ฏธ์ง€ ์ด๋ฆ„์ด ์‚ฌ์šฉ๋˜๊ธฐ๋„
  • GitHub์˜ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์™€ ์œ ์‚ฌ

Tag

  • ๊ฐ™์€ ์ด๋ฏธ์ง€๋ผ๋„ ๋ฒ„์ „ ๋ณ„๋กœ ๋‚ด๋ถ€ ๋‚ด์šฉ์ด ์กฐ๊ธˆ์”ฉ ์ƒ์ด
  • ์ฃผ๋กœ ํ•ด๋‹น ์ด๋ฏธ์ง€์˜ ๋ฒ„์ „์„ ํ‘œํ˜„ ex) 1.0 , 2.0 ๋“ฑ
  • ๋”ฐ๋กœ ์ง€์ •ํ•˜์ง€ ์•Š๊ณ  ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋ฉด ์ตœ๊ทผ(latest) ํƒœ๊ทธ๋ฅผ ๋ถ™์ธ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋Š” Registry_Account / Repository_Name : Tag ํ˜•ํƒœ๋กœ ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€) ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ-์ด๋ฏธ์ง€-์ปจํ…Œ์ด๋„ˆ ์˜ ๋А๋‚Œ์ด ์•ฝ๊ฐ„ python์—์„œ ํด๋ž˜์Šค-ํ•จ์ˆ˜-์ธ์Šคํ„ด์Šค(๊ฐ์ฒด) ๋А๋‚Œ

Docker ๋ช…๋ น์–ด ์˜ˆ์‹œ

docker image pull '๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์ด๋ฆ„/๋ ˆํฌ์ง€ํ† ๋ฆฌ์ด๋ฆ„:ํƒœ๊ทธ๋ช…' # ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ
docker image ls # ๊ฐ€์ ธ์˜จ ์ด๋ฏธ์ง€ ๋ฆฌ์ŠคํŠธ ์ถœ๋ ฅ
docker container run --name '์ปจํ…Œ์ด๋„ˆ์ด๋ฆ„' '๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์ด๋ฆ„/๋ ˆํฌ์ง€ํ† ๋ฆฌ์ด๋ฆ„:ํƒœ๊ทธ๋ช…' COMMAND ARG..
# ์ด๋ฏธ์ง€๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰์‹œํ‚ค๋Š” ๊ฒƒ
docker container ps -a # ์ปจํ…Œ์ด๋„ˆ ๋ฆฌ์ŠคํŠธ ๋ณด์—ฌ์คŒ(์‹คํ–‰๋˜๋Š”, ์ข…๋ฃŒ๋œ ์ปจํ…Œ์ด๋„ˆ ๋ชจ๋‘ ์ถœ๋ ฅ)
docker container rm '์ปจํ…Œ์ด๋„ˆ์ด๋ฆ„' # ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ง€์›๋‹ˆ๋‹ค.
docker image rm '๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์ด๋ฆ„/๋ ˆํฌ์ง€ํ† ๋ฆฌ์ด๋ฆ„:ํƒœ๊ทธ๋ช…' # ์ด๋ฏธ์ง€ ์‚ญ์ œ

์œ„์˜ ๊ณผ์ •์„ ํ•œ๋ฒˆ์— ์‹คํ–‰ํ•˜๋Š” ์˜ˆ์‹œ

docker container run --name '์ปจํ…Œ์ด๋„ˆ์ด๋ฆ„' --rm '๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์ด๋ฆ„/๋ ˆํฌ์ง€ํ† ๋ฆฌ์ด๋ฆ„:ํƒœ๊ทธ๋ช…' COMMAND ARG..

์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰(pull image๋ฅผ ์•ˆํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์•Œ์•„์„œ ์ด๋ฏธ์ง€๋ฅผ pull ํ•ด์˜จ ๋’ค ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
--rm : ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ผํšŒ์„ฑ์œผ๋กœ ์‹คํ–‰, ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ (stop ๋ช…๋ น์–ด๋ฅผ ์ค„ ๋•Œ) ์•Œ์•„์„œ ์‚ญ์ œ(remove)๊นŒ์ง€ ๋ฉ๋‹ˆ๋‹ค.

Docker ์ปจํ…Œ์ด๋„ˆ์— ํŒŒ์ผ์„ ๋ณต์‚ฌํ•˜๊ธฐ(๋กœ์ปฌ -> ์ปจํ…Œ์ด๋„ˆ)

๋กœ์ปฌ์—์„œ ์ปจํ…Œ์ด๋„ˆ๋กœ ํŒŒ์ผ์„ ๋ณต์‚ฌ(COPY)ํ•˜๋Š” ์ด์œ 
์•ž์œผ๋กœ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•  ๋„๊ตฌ, ํ™˜๊ฒฝ์ด ๋„์ปค ์ด๋ฏธ์ง€ ํ•œ์žฅ์— ๊ตฌ์„ฑ๋˜์–ด์žˆ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด,

  1. ์›น ์„œ๋ฒ„๋Š” ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋กœ ์‹คํ–‰
  2. ์›น ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ํŒŒ์ผ์€ ๋งŒ๋“ค๊ฑฐ๋‚˜, ๊ฐ€์ ธ์˜จ ํŒŒ์ผ

์œ„์™€ ๊ฐ™์€ ๊ฒฝ์šฐ์˜ ์žฅ์ ์€

  1. ์„œ๋ฒ„์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋Š” ๊ฒƒ์„ ํ˜ธ์ŠคํŠธ์™€ ๋ณ„๊ฐœ๋กœ ํŒŒ์•… ๊ฐ€๋Šฅ
  2. ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด ์ปจํ…Œ์ด๋„ˆ์˜ ์„œ๋ฒ„๋ฅผ ์ข…๋ฃŒํ•˜๊ณ  ๋„์ปค ์ด๋ฏธ์ง€๋กœ ์„œ๋ฒ„๋ฅผ ์žฌ๊ตฌ๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋กœ์ปฌ์— ์žˆ๋Š” ํŒŒ์ผ๊ณผ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ CP(copy)์™€ Docker Volume ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• 2๊ฐ€์ง€๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.

  • CP(copy) : ํ˜ธ์ŠคํŠธ(๋กœ์ปฌ)์—์„œ ์ปจํ…Œ์ด๋„ˆ ํ˜น์€ ์ปจํ…Œ์ด๋„ˆ์—์„œ ํ˜ธ์ŠคํŠธ๋กœ ํŒŒ์ผ์„ ๋ณต์‚ฌ
  • Volume : ํ˜ธ์ŠคํŠธ์™€ ์ปจํ…Œ์ด๋„ˆ ์‚ฌ์ด์— ์„œ๋กœ ๊ณต์œ ํ•˜๋Š” ๊ณต๊ฐ„์„ ๋งˆ์šดํŠธ

๋ช‡๊ฐ€์ง€ ์ž์ฃผ ์“ฐ์ด๋Š” ์ฝ”๋“œ ์˜ˆ์‹œ

docker container run --name jayden --rm -p 818:80 httpd

์œ„๋ฅผ ์‚ดํŽด๋ณด๋ฉด '์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰, jayden ์ด๋ž€ ์ด๋ฆ„์œผ๋กœ/ ๋กœ์ปฌ์—” 818 ํฌํŠธ, httpd์—” 80 ํฌํŠธ๋กœ ์„œ๋กœ ์—ฐ๊ฒฐ(-p)'
httpd๋Š” ๋„์ปค ํ—ˆ๋ธŒ์—์„œ ์ œ๊ณตํ•˜๋Š” ์—ฌ๋Ÿฌ ์ด๋ฏธ์ง€๋“ค ์ค‘ ํ•˜๋‚˜๋กœ 127.0.0.1:818์œผ๋กœ ์›น์„œ๋ฒ„๋ฅผ ์ž‘๋™์‹œ์ผœ์ฃผ๋Š” ์ด๋ฏธ์ง€์ž…๋‹ˆ๋‹ค.
์œ„์™€ ๊ฐ™์ด ์›น ์„œ๋ฒ„๋ฅผ ์ž‘๋™์‹œ์ผœ ์ค€ํ›„

docker container cp ./ jayden:/usr/local/apache2/htdocs/

'์ปจํ…Œ์ด๋„ˆ์—์„œ ์นดํ”ผ๋ฅผ ์‹œํ–‰, ./(๋กœ์ปฌ ํ˜„์žฌ ์œ„์น˜)์—์„œ jayden:/usr/local/apache2/htdocs/(์ปจํ…Œ์ด๋„ˆ ๋‚ด ์œ„์น˜)๋กœ ํŒŒ์ผ ๋ณต์‚ฌ
์ฆ‰, ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ํŒŒ์ผ๋“ค์„ ์ปจํ…Œ์ด๋„ˆ์˜ ์ € ์œ„์น˜์— ๋ณต์‚ฌํ•ด์ฃผ๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค.
(์ฃผ์˜: ๋ฐ˜๋“œ์‹œ ์นดํ”ผํ•  ํŒŒ์ผ ์œ„์น˜ ๋‹ค์Œ ์นดํ”ผํ•œ ํŒŒ์ผ์„ ๋ฐ›์„ ์œ„์น˜ ์ˆœ์„œ๋Œ€๋กœ ์ž…๋ ฅํ•  ๊ฒƒ!)
/usr/local/apache2/htdocs/๋Š” httpd์—์„œ ์ด ์œ„์น˜์— ์›น ํŒŒ์ผ์„ ๋„ฃ์œผ๋ฉด ๊ทธ ํŒŒ์ผ์„ ์œ„์˜ ์›น ์ฃผ์†Œ์—์„œ ๊ตฌ๋™๋˜๊ฒŒ๋” ํ•ด์ฃผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Docker ์ด๋ฏธ์ง€ ๋งŒ๋“ค๊ธฐ

์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค์–ด๋†“์œผ๋ฉด ์ด์ „์— ์ž‘์—…ํ–ˆ๋˜ ๋‚ด์šฉ์„ ๋‹ค์‹œ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์•„๋„ ๋˜๋Š” ์ ๊ณผ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ๋ฐฐํฌ๊ฐ€ ์šฉ์ดํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์ข‹๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ• 2๊ฐ€์ง€

  1. ๊ตฌ๋™ํ•œ Docker container ๋ฅผ ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค๊ธฐ
docker container commit '์ปจํ…Œ์ด๋„ˆ์ด๋ฆ„' '๋งŒ๋“ค ์ด๋ฏธ์ง€ ์ด๋ฆ„'
  1. Docker Image ๋นŒ๋“œ๋ฅผ ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” Dockerfile์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•

Docker Image๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์„ค๋ช…์„œ ๊ฒฉ์ธ Dockerfile์„ ๋งŒ๋“ค๊ณ  ๊ทธ Dockerfile์„ ์ด์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

Dockerfile ๋‚ด์šฉ ์˜ˆ์‹œ

FROM httpd:2.4 # ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€
WORKDIR /usr/local/apache2 # ์ปจํ…Œ์ด๋„ˆ์—์„œ ์ž‘์—…ํ•  ๊ณต๊ฐ„
COPY ./ /usr/local/apache2/htdocs/ # ํ˜„์žฌ ์œ„์น˜์˜ ํŒŒ์ผ์„ ๋’ค์˜ ์ปจํ…Œ์ด๋„ˆ ์œ„์น˜์— ๋ณต์‚ฌ

์œ„์™€ ๊ฐ™์€ ๋„์ปคํŒŒ์ผ์„ ์ด์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๋ช…๋ น์–ด

docker build --tag '๋งŒ๋“ค ์ด๋ฏธ์ง€ ์ด๋ฆ„'

๋„์ปค ํŒŒ์ผ์ด ์œ„์น˜ํ•œ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์œ„์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์•Œ์•„์„œ ๊ทธ ์œ„์น˜์˜ ๋„์ปคํŒŒ์ผ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.