A A
[Docker] Docker ๋ช…๋ น์–ด ํ™œ์šฉ Part.1
Docker Container Service๋ฅผ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•œ Docker ๋ช…๋ น์–ด(CLI)์— ๋ฐํ•˜์—ฌ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  Docker ๋ช…๋ น์€ ํ‚ค์›Œ๋“œ๋กœ docker๋ฅผ ์•ž์— ์‚ฌ์šฉํ•˜๊ณ  ๊ธฐ๋ณธ์ ์ธ ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์€ help ๋ช…๋ น์„ ํ†ตํ•ด ํ™•์ธํ•˜๊ฑฐ๋‚˜ docker์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

docker COMMAND -help

Docker image ๋ช…๋ น์–ด

๋„์ปค image๋Š” docker์˜ ํ•ต์‹ฌ๊ธฐ์ˆ ์ด๋ฉฐ ์ฝ”๋“œ๋กœ ๊ฐœ๋ฐœ๋œ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ํ™˜๊ฒฝ ์ •๋ณด(Binary, Library, ๊ฐ์ข… Tool๋“ฑ)์„ ๊ณ ์Šค๋ž€ํžˆ ๋ณต์ œํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Docker Container๋กœ ์‚ฌ์šฉํ•  Docker image๋Š” docker search๋ฅผ ํ†ตํ•ด ์กฐํšŒํ•˜๋ฉด Docker Hub ๋ฐ ๊ฐœ์ธ ์‚ฌ์šฉ์ž๋“ค์ด ๊ณต๊ฐœํ•œ ๊ด€๋ จ ์ด๋ฏธ์ง€๋ฅผ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Local Server ๋ฐ Desktop์— Docker image๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Dockerfile์„ ํ†ตํ•ด ์ƒˆ๋กœ์šด image๋ฅผ ์ƒ์„ฑ(Docker Build)ํ•˜๊ฑฐ๋‚˜ Docker Hub๋กœ ๋ถ€ํ„ฐ ์ด๋ฏธ์ง€๋ฅผ ๋‚ด๋ ค๋ฐ›๋Š” Docker pull ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

Dockefile๋กœ ์ƒ์„ฑ๋œ image๋Š” Docker Hub์— Login์„ ํ†ตํ•œ ์ž๊ฒฉ ์ฆ๋ช…ํ›„ ์—…๋กœ๋“œ (Docker push)ํ•˜๊ณ  ๊ณต๊ฐœ ๋ฐ ๋น„๊ณต๊ฐœ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” Github๋ฅผ ํ†ตํ•ด Dockerfile ์ฝ”๋“œ๋ฅผ ๊ณต์œ ํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ์ด๋ฏธ์ง€๋ฅผ ์‹คํ–‰(Docker run)ํ•˜๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์„œ๋น„์Šคํ•˜๋ ค๊ณ  ํ•˜๋Š” App Container๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

Docker Image ๊ด€๋ จ ๋ช…๋ น์–ด


Docker Image ๋‚ด๋ ค๋ฐ›๊ธฐ

๋„์ปค ํ—ˆ๋ธŒ ๋ ˆ์ง€์ŠคํŠธ๋กœ๋ถ€ํ„ฐ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๋‚ด๋ ค๋ฐ›๊ฑฐ๋‚˜ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ์—…๋กœ๋“œํ•˜๋Š” ๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • docker pull: ๋„์ปค ํ—ˆ๋ธŒ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ ๋กœ์ปฌ๋กœ ๋„์ปค ์ด๋ฏธ์ง€ ๋‚ด๋ ค๋ฐ›๊ธฐ
  • docker push: ๋กœ์ปฌ์— ์žˆ๋Š” ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๋„์ปค ํ—ˆ๋ธŒ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ์—…๋กœ๋“œํ•˜๊ธฐ
  • docker login: ์—…๋กœ๋“œ๋ฅผ ํ•˜๊ธฐ ์ „ ๋„์ปค ํ—ˆ๋ธŒ ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธ ์ˆ˜ํ–‰ํ•˜๊ธฐ
  • docker logout: ๋„์ปค ํ—ˆ๋ธŒ์—์„œ ๋กœ๊ทธ์•„์›ƒํ•˜๊ธฐ

๋„์ปค ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋„์ปค ํ—ˆ๋ธŒ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋กœ ์ž๋™ ์ง€์ •๋˜๊ณ  ํŠน์ • ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ง€์ •ํ•ด์„œ ๋ฐ›๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์Šต๋‹ˆ๋‹ค.  ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์œ„ํ•ด docker pull ๋ช…๋ น์„ ์ด์šฉํ•˜๊ณ  ์˜ต์…˜ ๋ฐ ํƒœ๊ทธ ๋“ฑ์„ ์ง€์ •ํ•˜์—ฌ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

docker [image] pull [OPTIONS] name[:TAG | @IMAGE_DIGEST]

๋ฐฐํฌ๋œ ๋ฆฌ๋ˆ…์Šค ์ด๋ฏธ์ง€์ธ debain ๋‹ค์šด๋กœ๋“œ๋ฅผ ํ†ตํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

toby@tobykakao:~$ docker pull debian

Using default tag: latest
latest: Pulling from library/debian
c1e0ef7b956a: Pull complete 
Digest: sha256:e11072c1614c08bf88b543fcfe09d75a0426d90896408e926454e88078274fcb
Status: Downloaded newer image for debian:latest
docker.io/library/debian:latest

๋‹ค์šด๋กœ๋“œํ•œ ์ด๋ฏธ์ง€ ์กฐํšŒ

toby@tobykakao:~$ docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
debian       latest    d36fff645336   10 days ago   139MB
nginx        latest    048e09038596   3 weeks ago   197MB
busybox      latest    63cd0d5fb10d   4 weeks ago   4.04MB

์ด์ œ ์ฃผ์˜ํ•ด์•ผ ํ• ์ ์— ๋ฐํ•˜์—ฌ ์„ค๋ช…์„ ํ•ด๋ณด๋ฉด

  • ์ด๋ฏธ์ง€๋ช… ๋’ค์— : ํƒœ๊ทธ๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š์œผ๋ฉด ์ž๋™์œผ๋กœ ์ตœ์‹  ๋ฒ„์ „(latest)์œผ๋กœ ์ง€์ •๋˜๋ฏ€๋กœ ๊ธฐ๋ณธ ํƒœ๊ทธ๊ฐ’์ด latest๋ผ๊ณ  ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.
    • ๋งŒ์•ฝ ํŠน์ • ๋ฒ„์ „์„ ์ง€์ •ํ•˜๊ฒŒ ๋˜๋ฉด latest ๋Œ€์‹  ์ง€์ •ํ•œ ๋ฒ„์ „๋ช…์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ library๋Š” ๋„์ปค ํ—ˆ๋ธŒ๊ฐ€ ์ด๋ฏธ์ง€๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
$ docker pull debian:10.3
10.3: Pulling from library/debian
...

๋„์ปค ์ด๋ฏธ์ง€๋ช…์˜ ๊ธฐ๋ณธ ํ˜•์‹์€ <๋„ค์ž„์ŠคํŽ˜์ด์Šค>/<์ด๋ฏธ์ง€๋ช…>:<ํƒœ๊ทธ>์ด๊ณ , ๋ณ„๋„๋กœ ํŠน์ • ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์ž๋™์œผ๋กœ ๋„์ปค ํ—ˆ๋ธŒ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

  1. ๋„์ปค ํ—ˆ๋ธŒ์—์„œ ์ œ๊ณต๋œ ์ด๋ฏธ์ง€์˜ ๋ถ„์‚ฐ ํ•ด์‹œ(distribution hash) ํ‘œ์‹œ๋Š”, ๋‹ค์šด๋กœ๋“œํ•œ ์ด๋ฏธ์ง€๋Š” ์—ฌ๋Ÿฌ ๊ณ„์ธต(layer)์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๋Š”๋ฐ ๊ฐ ์ด๋ฏธ์ง€์˜ ํ•ต์‹ฌ ์ •๋ณด๋ฅผ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ˜•ํƒœ์˜ ์ •๋ณด๋กœ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  2. ๋‹ค์ด์ œ์ŠคํŠธ๊ฐ’์€ ์›๊ฒฉ ๋„์ปค ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ(๋„์ปค ํ—ˆ๋ธŒ)์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ์ด๋ฏธ์ง€์˜ ๊ณ ์œ  ์‹๋ณ„๊ฐ’์„ ๋œปํ•˜๊ณ , ์ด ๊ฐ’์„ ํฌํ•จํ•œ ์กฐํšŒ๋Š” docker images --digests ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  3. ๋‹ค์šด๋กœ๋“œํ•œ ์ด๋ฏธ์ง€ ์ •๋ณด๊ฐ€ ๋กœ์ปฌ์— ์ €์žฅ๋˜์—ˆ์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ƒํƒœ ํ‘œ์‹œ.debian:latest์™€ ๋™์ผํ•œ ๊ฐ’์œผ๋กœ docker.io๋Š” ๋„์ปค ํ—ˆ๋ธŒ์˜ ์ด๋ฏธ์ง€ ์ €์žฅ์†Œ ์ฃผ์†Œ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋„์ปค ์ƒ์„ธ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” docker info ๋ช…๋ น์–ด์˜ ์ถœ๋ ฅ ์ •๋ณด ์ค‘ Registry: <https://index.docker.io/v1/์™€> ๋™์ผํ•˜๋‹ค.

์ด๋ ‡๊ฒŒ ๋‹ค์šด๋กœ๋“œํ•œ ์ด๋ฏธ์ง€ ์ •๋ณด๋Š” docker image ls(๋˜๋Š” docker images)๋ฅผ ํ†ตํ•ด ์กฐํšŒ๋ฉ๋‹ˆ๋‹ค. docker pull ๋ช…๋ น์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

docker pull ๋ช…๋ น ์˜ต์…˜ ํ‘œ

์˜ต์…˜ํ˜• (๋‹จ์ถ•ํ˜•) ์„ค๋ช…
--all-tags, -a ์ €์žฅ์†Œ์— ํƒœ๊ทธ๋กœ ์ง€์ •๋œ ์—ฌ๋Ÿฌ ์ด๋ฏธ์ง€๋ฅผ ๋ชจ๋‘ ๋‹ค์šด๋กœ๋“œํ•จ. (๋‹ค์šด๋กœ๋“œ ์ค‘ ์ž‘์—… ์ค‘์ง€๋ฅผ ํ•  ๊ฒฝ์šฐ (Ctrl + C) ์ˆ˜ํ–‰)
--disable-content-trust ์ด๋ฏธ์ง€ ๊ฒ€์ฆ(verification) ์ž‘์—… ๊ฑด๋„ˆ๋›ฐ๊ธฐ(๊ธฐ๋ณธ๊ฐ’, true). DCT(Docker Contents Trust)๋ฅผ ์ด์šฉํ•œ ์ด๋ฏธ์ง€ ์‹ ๋ขฐ์„ฑ ๊ฒ€์ฆ. ์ž‘์—…์„ DOCKER_CONTENT_TRUST=1๋กœ ํ™œ์„ฑํ™”(๋น„ํ™œ์„ฑํ™”, 0).
--platform ํ”Œ๋žซํผ ์ง€์ •. ์œˆ๋„์šฐ ๋„์ปค์—์„œ ๋ฆฌ๋ˆ…์Šค ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›์•„์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ(์˜ˆ: --platform=linux).
--quiet, -q ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ ๊ณผ์ •์—์„œ ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚˜๋Š” ์ƒ์„ธ ์ถœ๋ ฅ ์ˆจ๊น€.

์•„๋ž˜์˜ ๋‚ด์šฉ์€ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

  • ๋ช…์‹œ์ ์œผ๋กœ ์ตœ์‹  ๋ฒ„์ „ ์ง€์ •
$ docker pull debian:latest
  • ์ด๋ฏธ์ง€ ์‹๋ณ„ ์ •๋ณด์ธ ๋‹ค์ด์ œ์ŠคํŠธ ์ง€์ •.
$ docker pull debian:sha256:2857989334428416...94cc940198258
  • ๋„์ปค ํ—ˆ๋ธŒ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๋ช…์‹œ์  ์ง€์ •.
$ docker pull library/debian:latest
$ docker pull docker.io/library/debian:latest
$ docker pull index.docker.io/library/debian:latest
  • ์™ธ๋ถ€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•(์˜ˆ๋ฅผ ๊ตฌ๊ธ€์—์„œ ์ œ๊ณตํ•˜๋Š” ์ƒ˜ํ”Œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ฏธ์ง€ ์ง€์ •).
  • ์ฃผ์˜ ํ•ด์•ผํ•  ์ ์€ ์›น ์ฃผ๊ณ  URL์—์„œ ๋„๋ฉ”์ธ ์ฃผ์†Œ์˜ ์‹œ์ž‘์ธ http://๋ฅผ ๋ถ™์ด์ง€ ๋ง๊ณ  ์ด๋ฏธ์ง€ ์ฃผ์†Œ๋ฅผ ์จ์•ผ ํ•œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.
$ docker pull gcr.io/google-samples/hello-app:1.0

๋„์ปค ์ด๋ฏธ์ง€ ์„ธ๋ถ€ ์ •๋ณด ์กฐํšŒ

๋„์ปค ์˜ค๋ธŒ์ ํŠธ(์ด๋ฏธ์ง€, ์ปจํ…Œ์ด๋„ˆ ๋“ฑ)์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์ •๋ณด ์กฐํšŒ๋ฅผ ์œ„ํ•ด docker image inspect, docker image history, ๋ฌผ๋ฆฌ์ ์œผ๋กœ ํ˜ธ์ŠคํŠธ ์šด์˜์ฒด์ œ์— ์ €์žฅ๋œ ์˜์—ญ์„ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ €, docker inspect์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

docker image inspect [OPTIONS] IMAGE [IMAGE...]

์ด ๋ช…๋ น์˜ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋Š” JSON ์–ธ์–ด ํ˜•๋Œ€๋กœ ์ถœ๋ ฅ๋˜๋Š” ์ •๋ณด๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ํฌ๋งท ์˜ต์…˜์„ ์ด์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ์ •๋ณด๋งŒ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

docker image inspect ๋ช…๋ น ์˜ต์…˜

์˜ต์…˜๋ช…(๋‹จ์ถ•ํ˜•  ์„ค๋ช…
--format, -f JSON ํ˜•์‹์˜ ์ •๋ณด ์ค‘ ์ง€์ •ํ•œ ํ˜•์‹์˜ ์ •๋ณด๋งŒ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๊ณ , {} ์ค‘๊ด„ํ˜ธ ํ˜•์‹๊ณผ ๋Œ€์†Œ๋ฌธ์ž์— ์œ ์˜ํ•ด์•ผ ํ•œ๋‹ค.

์ถœ๋ ฅ๋˜๋Š” ์„ธ๋ถ€ ๋‚ด์šฉ ์ค‘ ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ์ •๋ณด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • image ID: "Id"
  • ์ƒ์„ฑ์ผ: "Created"
  • Docker ๋ฒ„์ „: "DockerVersion"
  • CPU ์•„ํ‚คํ…์ฒ˜: "Architecture"
  • ์ด๋ฏธ์ง€ ๋‹ค์ด์ œ์ŠคํŠธ ์ •๋ณด: "RootFS"
  • ์ด๋ฏธ์ง€ ๋ ˆ์ด์–ด ์ €์žฅ ์ •๋ณด: "GraphDriver"

ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด์„œ ์•„ํŒŒ์น˜ ์›น ์„œ๋น„์Šค๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” httpd Docker image๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

toby@tobykakao:~$ docker search httpd
NAME                     DESCRIPTION                                     STARS     OFFICIAL
httpd                    The Apache HTTP Server Project                  4804      [OK]
manageiq/httpd           Container with httpd, built on CentOS for Ma\\u2026   1         
paketobuildpacks/httpd                                                   0         
vulhub/httpd                                                             0         
jitesoft/httpd           Apache httpd on Alpine linux.                   0         
openquantumsafe/httpd    Demo of post-quantum cryptography in Apache \\u2026   14        
openeuler/httpd                                                          0         
betterweb/httpd                                                          0         
dockerpinata/httpd                                                       1         
centos/httpd                                                             36        
e2eteam/httpd                                                            0         
manasip/httpd                                                            0         
futdryt/httpd                                                            0         
amd64/httpd              The Apache HTTP Server Project                  1         
ppc64le/httpd            The Apache HTTP Server Project                  0         
9af925e7043/httpd                                                        0         
arm64v8/httpd            The Apache HTTP Server Project                  11        
arm32v7/httpd            The Apache HTTP Server Project                  11        
s390x/httpd              The Apache HTTP Server Project                  1         
i386/httpd               The Apache HTTP Server Project                  1         
tugboatqa/httpd          The Apache HTTP Server Project                  0         
signiant/httpd           httpd (apache2) base container with a custom\\u2026   0         
armhf/httpd              The Apache HTTP Server Project                  8         
inventis/httpd           apache container with support for https only    0         
vzwingmadomatic/httpd    Service frontal de l'application de domotique   0      

 

httpd ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ๋‹ค์šด๋กœ๋“œ.

toby@tobykakao:~$ docker pull httpd:latest
latest: Pulling from library/httpd
83d624c4be2d: Pull complete 
95a204763e1f: Pull complete 
4f4fb700ef54: Pull complete 
04c249b7ebc4: Pull complete 
5b5ffa066706: Pull complete 
37e153d74605: Pull complete 
Digest: sha256:bbea29057f25d9543e6a96a8e3cc7c7c937206d20eab2323f478fdb2469d536d
Status: Downloaded newer image for httpd:latest
docker.io/library/httpd:latest

๋‹ค์šด๋กœ๋“œํ•œ ์ด๋ฏธ์ง€ ์กฐํšŒ

toby@tobykakao:~$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
debian       latest    d36fff645336   10 days ago    139MB
nginx        latest    048e09038596   3 weeks ago    197MB
busybox      latest    63cd0d5fb10d   4 weeks ago    4.04MB
httpd        latest    721aa0022a96   3 months ago   178MB

 

๋‹ค์šด๋กœ๋“œํ•œ ์ด๋ฏธ์ง€ ์„ธ๋ถ€ ์ •๋ณด ์กฐํšŒ.

toby@tobykakao:~$ docker image inspect httpd
[
    {
        "Id": "sha256:721aa0022a9698cc8600be694b337c307fc98bc12f12097d3c6d1e156930b562",
        "RepoTags": [
            "httpd:latest"
        ],
        "RepoDigests": [
            "httpd@sha256:bbea29057f25d9543e6a96a8e3cc7c7c937206d20eab2323f478fdb2469d536d"
        ],
        "Parent": "",
        "Comment": "buildkit.dockerfile.v0",
        "Created": "2024-07-17T23:31:14Z",
        "DockerVersion": "",
        "Author": "",
        "Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "80/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/apache2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "HTTPD_PREFIX=/usr/local/apache2",
                "HTTPD_VERSION=2.4.62",
                "HTTPD_SHA256=674188e7bf44ced82da8db522da946849e22080d73d16c93f7f4df89e25729ec",
                "HTTPD_PATCHES="
            ],
            "Cmd": [
                "httpd-foreground"
            ],
            "ArgsEscaped": true,
            "Image": "",
            "Volumes": null,
            "WorkingDir": "/usr/local/apache2",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": null,
            "StopSignal": "SIGWINCH"
        },
        "Architecture": "arm64",
        "Variant": "v8",
        "Os": "linux",
        "Size": 177748902,
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/eb1dd9507f942c5b461b56d0a79321531f299e3faef19292bda6b3e0d9793b19/diff:/var/lib/docker/overlay2/5dfa4fc40a4a6634f7d6635484dcd3805c51a9bbee667c8962e621cb983b707a/diff:/var/lib/docker/overlay2/6ce73c693d5b5ba083dc04f1847dce95578ea472256a150d480bd9b380057cd4/diff:/var/lib/docker/overlay2/004d11ac644c41faeaf168ee87a993ddab9aa7700ff7d863f2f9bdac0a7d99d8/diff:/var/lib/docker/overlay2/97a782e56c7d43650f0e2e36bd1fab4f03d94b014925dec200a615a69633e785/diff",
                "MergedDir": "/var/lib/docker/overlay2/d0655e9b879e789e92437302b4f1d9ff1f3edeb6cd10cb12a0fbe4ff419b319b/merged",
                "UpperDir": "/var/lib/docker/overlay2/d0655e9b879e789e92437302b4f1d9ff1f3edeb6cd10cb12a0fbe4ff419b319b/diff",
                "WorkDir": "/var/lib/docker/overlay2/d0655e9b879e789e92437302b4f1d9ff1f3edeb6cd10cb12a0fbe4ff419b319b/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:f0f039847c0897e41273775d599cc761049c809342ff8362efb4caf561186ada",
                "sha256:622b52428873166b166ae6f2602c48f0fbc837001839da8918a11c9a45d2a724",
                "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
                "sha256:02895f09033b3f95dfa40b904e3cea74e287913e3c1965a61b68419a0cc0e6e3",
                "sha256:dd7b9677cc6d24784b5c1580c853e4097acd0d55f6f8d9e37394a825e9d24498",
                "sha256:c3e85bca3483fd93393ce8443fa38967ef5de8ace5e82c5e651660290291f098"
            ]
        },
        "Metadata": {
            "LastTagTime": "0001-01-01T00:00:00Z"
        }
    }
]

 

๊ณ„์ธต ํ˜•์‹์œผ๋กœ ๋˜์–ด ์žˆ์–ด ํ•˜์œ„ ์ •๋ณด ์กฐํšŒ์‹œ, .์ƒ์œ„[.ํ•˜์œ„] ๋ฐฉ์‹์œผ๋กœ ์กฐํšŒ

toby@tobykakao:~$ docker image inspect --format="{{ .RepoTags }}" httpd
[httpd:latest]
toby@tobykakao:~$ docker image inspect --format="{{ .Os }}" httpd
linux
toby@tobykakao:~$ docker image inspect --format="{{ .Created }}" httpd
2024-07-17T23:31:14Z
toby@tobykakao:~$ docker image inspect --format="{{ .Config.Env }}" httpd
[PATH=/usr/local/apache2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HTTPD_PREFIX=/usr/local/apache2 HTTPD_VERSION=2.4.62 HTTPD_SHA256=674188e7bf44ced82da8db522da946849e22080d73d16c93f7f4df89e25729ec HTTPD_PATCHES=]
toby@tobykakao:~$ docker image inspect --format="{{ .RootFS.Layers }}" httpd
[sha256:f0f039847c0897e41273775d599cc761049c809342ff8362efb4caf561186ada sha256:622b52428873166b166ae6f2602c48f0fbc837001839da8918a11c9a45d2a724 sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef sha256:02895f09033b3f95dfa40b904e3cea74e287913e3c1965a61b68419a0cc0e6e3 sha256:dd7b9677cc6d24784b5c1580c853e4097acd0d55f6f8d9e37394a825e9d24498 sha256:c3e85bca3483fd93393ce8443fa38967ef5de8ace5e82c5e651660290291f098]
toby@tobykakao:~$ 

Docker Image History ์กฐํšŒ

๋‹ค์Œ์€ docker image history๋ฅผ ์ด์šฉํ•˜์—ฌ ์กฐํšŒํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

docker image history [OPTIONS] IMAGE

์ด ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํ˜„์žฌ ์ด๋ฏธ์ง€ ๊ตฌ์„ฑ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋œ ๋ ˆ์ด๋ธ” ์ •๋ณด์™€ ๊ฐ ๋ ˆ์ด์–ด์˜ ์ˆ˜ํ–‰๋ช…๋ น, ํฌ๊ธฐ๋“ฑ์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ์žˆ๋Š” ๋ ˆ์ด์–ด์˜ ์‹คํ–‰ ์ •๋ณด์™€ ๊ด€๋ จ๋œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

toby@tobykakao:~$ docker image history httpd
IMAGE          CREATED        CREATED BY                                      SIZE      COMMENT
721aa0022a96   3 months ago   CMD ["httpd-foreground"]                        0B        buildkit.dockerfile.v0
<missing>      3 months ago   EXPOSE map[80/tcp:{}]                           0B        buildkit.dockerfile.v0
<missing>      3 months ago   COPY httpd-foreground /usr/local/bin/ # buil\\u2026   138B      buildkit.dockerfile.v0
<missing>      3 months ago   STOPSIGNAL SIGWINCH                             0B        buildkit.dockerfile.v0
<missing>      3 months ago   RUN /bin/sh -c set -eux;   savedAptMark="$(a\\u2026   69.2MB    buildkit.dockerfile.v0
<missing>      3 months ago   ENV HTTPD_PATCHES=                              0B        buildkit.dockerfile.v0
<missing>      3 months ago   ENV HTTPD_SHA256=674188e7bf44ced82da8db522da\\u2026   0B        buildkit.dockerfile.v0
<missing>      3 months ago   ENV HTTPD_VERSION=2.4.62                        0B        buildkit.dockerfile.v0
<missing>      3 months ago   RUN /bin/sh -c set -eux;  apt-get update;  a\\u2026   11.4MB    buildkit.dockerfile.v0
<missing>      3 months ago   WORKDIR /usr/local/apache2                      0B        buildkit.dockerfile.v0
<missing>      3 months ago   RUN /bin/sh -c mkdir -p "$HTTPD_PREFIX"  && \\u2026   0B        buildkit.dockerfile.v0
<missing>      3 months ago   ENV PATH=/usr/local/apache2/bin:/usr/local/s\\u2026   0B        buildkit.dockerfile.v0
<missing>      3 months ago   ENV HTTPD_PREFIX=/usr/local/apache2             0B        buildkit.dockerfile.v0
<missing>      3 months ago   /bin/sh -c #(nop)  CMD ["bash"]                 0B        
<missing>      3 months ago   /bin/sh -c #(nop) ADD file:702193928cded0bce\\u2026   97.1MB    

์ถœ๋ ฅ ๊ฒฐ๊ณผ ์ค‘ CREATED BY ์—ด์„ ๋ณด๋ฉด ํŠน์ • ์ด๋ฏธ์ง€๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ ๋ช…๋ น๊ณผ ํ™˜๊ฒฝ ์„ค์ • ์ •๋ณด ๋“ฑ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •๋ณด ์ค‘ ์šฉ๋Ÿ‰์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ผ์ธ์ด ์„ธ ๋ฒˆ์งธ๋กœ ์†Œ๊ฐœํ•  ๋ ˆ์ด์–ด์ž…๋‹ˆ๋‹ค. CMD, EXPOSE, ENV, WORKDIR ๋“ฑ์˜ ๋ช…๋ น์„ ํ†ตํ•ด ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€์— ํ•„์š”ํ•œ ์„ค์ • ์ •๋ณด๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ์— ๊ด€๋ จ๋œ ๋ช…๋ น์€ Dockerfile์„ ํ†ตํ•ด ๋ฐฐ์šฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

์„ธ ๋ฒˆ์งธ๋กœ ๋‹ค์šด๋กœ๋“œํ•œ ์ด๋ฏธ์ง€๊ฐ€ ํ˜ธ์ŠคํŠธ ์šด์˜์ฒด์ œ์— ์–ด๋–ค ํ˜•ํƒœ๋กœ ์ €์žฅ๋˜์–ด ์žˆ๋Š”์ง€ ์‚ดํŽด๋ณด๊ธฐ ์œ„ํ•ด ์ด๋ฏธ์ง€๊ฐ€ ๋‹ค์šด๋กœ๋“œ๋˜๋Š” ๊ณผ์ •์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ ๋‹ค์šด๋กœ๋“œํ•œ ๋ฐ๋น„์•ˆ ๋ฆฌ๋ˆ…์Šค์™€ ๋‹ฌ๋ฆฌ ์•„ํŒŒ์น˜ ์›น ์„œ๋ฒ„ ์ด๋ฏธ์ง€์ธ httpd๋Š” ๋‹ค์šด๋กœ๋“œํ•œ ๋ ˆ์ด์–ด ์ˆ˜๊ฐ€ ๋” ๋งŽ์€ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

54fec2fa59d0: Pull complete ...... ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†Œ์Šค
8219e18ac492: Pull complete ...... ์•„ํŒŒ์น˜ httpd ์„œ๋ฒ„
3aeb1816f5e1: Pull complete ...... ๋ ˆ์ด์–ด3
a5aa59adb85e: Pull complete ...... ๋ ˆ์ด์–ด4
4f6febfae8db: Pull complete ...... ๋ ˆ์ด์–ด5 (์ด๋ฏธ์ง€ ๋‚ด์˜ ์šด์˜์ฒด์ œ, ๋ฐ๋น„์•ˆ)

์ฐธ๊ณ ๋กœ, ์ถœ๋ ฅ๋œ ๋‹ค์ด์ œ์ŠคํŠธ๊ฐ’์€ ๋„์ปค ํ—ˆ๋ธŒ์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๋‹ค์ด์ œ์ŠคํŠธ๊ฐ’์ด ์•„๋‹Œ ๋กœ์ปฌ์— ๋‹ค์šด๋กœ๋“œ๋  ๋•Œ ์ƒ๊ธฐ๋Š” ๋ ˆ์ด์–ด๋“ค์˜ ๋””์ŠคํŠธ๋ฆฌ๋ทฐ์…˜ ์•„์ด๋””(distribution ID)์ž…๋‹ˆ๋‹ค.

54fec2fa59d0, 8219e18ac492, 3aeb1816f5e1, a5aa59adb85e, 4f6febfae8db

 

์ด ์ด๋ฏธ์ง€ ์ •๋ณด๋Š” ๋‹ค์Œ ๊ฒฝ๋กœ์—์„œ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

root@docker-host:/var/lib/docker/image/overlay2/distribution/diffid-by-digest/sha256# ls
...
2fdf5ac7b6874ed7eaa96ed74593627b81390bbd7990a2a469093853ff1b5374
a50b5ac4a7fb2ab0d00cc3f2d3c1063d9f7751e32fe038b7ad7545bb239027167
3aeb1816f5e1ebc28f7044e1431eb6516bca574739cbf4025816c01a150e4b78
a5aa59adb85e8f77a232f42938287b07f2bb3487a55bc4cabce5b53cdc674f44
4f6febfae8db62875b2841597fb8c07e6da508b9aee3c11ab999a3a44bf4f52b
54fec2fa59d0a0de9cd2dec9850b36c43de451f1fd0ca05bf8f1cf26a61a5da4
...

๊ฐ„๋‹จํžˆ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

Docker Union File System

  1. ๋„์ปค ์ด๋ฏธ์ง€ ๊ตฌ์กฐ์˜ ๊ธฐ๋ณธ ์šด์˜์ฒด์ œ ๋ ˆ์ด์–ด๋“ค์„ ์Œ“๋Š”๋‹ค.
  2. ์šด์˜์ฒด์ œ ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€ ์œ„์— ์•„ํŒŒ์น˜ ์›น ์„œ๋ฒ„๋ฅผ ์„ค์น˜ํ•œ ๋ ˆ์ด์–ด๋ฅผ ์˜ฌ๋ฆฐ๋‹ค.
  3. ์•„ํŒŒ์น˜ ์›น ์„œ๋น„์Šค์— ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค ์ •๋ณด ๋ฐ ํ™˜๊ฒฝ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ๋ ˆ์ด์–ด๋ฅผ ์˜ฌ๋ฆฐ๋‹ค. ์ด๋ ‡๊ฒŒ ๊ตฌ์„ฑ๋œ ์ด๋ฏธ์ง€๋Š” ๋ถˆ๋ณ€(immutable)์˜ ์ฝ๊ธฐ ์ „์šฉ ๋ ˆ์ด์–ด๋“ค์˜ ์ง‘ํ•ฉ ๊ตฌ์กฐ์ธ ์œ ๋‹ˆ์–ธ ํŒŒ์ผ ์‹œ์Šคํ…œ(union filesystem)์ด๋‹ค.
  4. ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ตฌ๋™ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ์ปจํ…Œ์ด๋„ˆ์—์„œ ๋ฐœ์ƒํ•œ ๋ชจ๋“  ๋ณ€๊ฒฝ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ฝ๊ณ -์“ฐ๊ธฐ ๋ ˆ์ด์–ด๋ฅผ ๋‘๊ณ  ์ €์žฅํ•˜๊ฒŒ ๋œ๋‹ค.

์ด๋ฏธ์ง€ ๋ ˆ์ด์–ด๋Š” ๋ถˆ๋ณ€์ด์ง€๋งŒ, ๊ด€๋ฆฌ์ž๊ฐ€ ๊ถŒํ•œ์œผ๋กœ ํ˜ธ์ŠคํŠธ ์šด์˜์ฒด์ œ์—์„œ ๊ฐ ๋ ˆ์ด์–ด์— ์ ‘๊ทผํ•˜๊ฒŒ ๋˜๋ฉด ํŒŒ์ผ ์ƒ์„ฑ ๋ฐ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์™œ ์ด๋Ÿฐ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ผ๊นŒ?

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


๋„์ปค์˜ ์ €์žฅ์†Œ ํ™•์ธ ๋ฐฉ๋ฒ•

  • ๋„์ปค ์ €์žฅ์†Œ์— ์‚ฌ์šฉ๋˜๋Š” ์Šคํ† ๋ฆฌ์ง€ ๋“œ๋ผ์ด๋ฒ„ ํ™•์ธ:
$ docker info | grep Storage
Storage Driver: overlay2
  • ๋„์ปค์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ๋ฐ ๋กœ๊ทธ ๊ฒฝ๋กœ ํ™•์ธ (๊ด€๋ฆฌ์ž ๊ถŒํ•œ ํ•„์š”):
toby@tobykakao:~$ sudo su -
root@tobykakao:~# cd /var/lib/docker
root@tobykakao:/var/lib/docker# ls
buildkit  containers  engine-id  image  network  overlay2  plugins  runtimes  swarm  tmp  volumes
  • ์ด๋ฏธ์ง€ ๋ ˆ์ด์–ด ๋ฐ์ดํ„ฐ ๊ฒฝ๋กœ ํ™•์ธ:
# cd image/overlay2/layerdb/sha256/
# ls

์ถœ๋ ฅ๋œ ๋ฐ์ดํ„ฐ ์ด๋ฆ„์€ ๋‹ค์ด์ œ์ŠคํŠธ ๊ฐ’์ด๋‹ค. ์ด๋Š” httpd ์ด๋ฏธ์ง€์˜ ๋ ˆ์ด์–ด์™€ ๋™์ผํ•˜๋‹ค.


๋ ˆ์ด์–ด์˜ ์ƒ์„ธ ํ™•์ธ ๋ฐ ๋น„๊ต

  • ๋„์ปค ๋ช…๋ น์œผ๋กœ ํŠน์ • ์ •๋ณด ํ•„ํ„ฐ๋ง:
toby@tobykakao:~$ docker image inspect --format="{{ .RootFS.Layers }}" httpd
[sha256:f0f039847c0897e41273775d599cc761049c809342ff8362efb4caf561186ada sha256:622b52428873166b166ae6f2602c48f0fbc837001839da8918a11c9a45d2a724 sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef sha256:02895f09033b3f95dfa40b904e3cea74e287913e3c1965a61b68419a0cc0e6e3 sha256:dd7b9677cc6d24784b5c1580c853e4097acd0d55f6f8d9e37394a825e9d24498 sha256:c3e85bca3483fd93393ce8443fa38967ef5de8ace5e82c5e651660290291f098]
  • ์‹ค์ œ ํŒŒ์ผ ์ €์žฅ ๊ฒฝ๋กœ ํ™•์ธ:
# cd /var/lib/docker/overlay2

๋ ˆ์ด์–ด์˜ ํšจ์œจ์  ์‚ฌ์šฉ ์ด์œ 

  1. ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋ฉด ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ์—์„œ ๊ณ„์† ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  2. ์ˆ˜์ •๋œ ๋ ˆ์ด์–ด๋งŒ ์ถ”๊ฐ€ ๋‹ค์šด๋กœ๋“œํ•˜๋ฏ€๋กœ ๊ธฐ์กด ๋ ˆ์ด์–ด๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•˜์—ฌ ์ €์žฅ ๊ณต๊ฐ„์ด ์ ˆ์•ฝ๋ฉ๋‹ˆ๋‹ค.

๋„์ปค๋Š” ์ด๋Ÿฌํ•œ ํŠน์ง•์„ ํ†ตํ•ด ์ด๋ฏธ์ง€์˜ ๊ฐ€์ƒํ™”์™€ ํšจ์œจ์ ์ธ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


๋‹ค๋ฅธ ํ„ฐ๋ฏธ๋„์„ ์ด์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰

httpd ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ webserver๋ผ๋Š” ์ด๋ฆ„์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๊ณ , bash ๋ช…๋ น์œผ๋กœ ๋‚ด๋ถ€ ์…ธ์— ์ ‘์†ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

toby@tobykakao:~$ docker run -it -p 80:80 --name=webserver httpd:latest /bin/bash
  • ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€:
toby@tobykakao:~$ docker run -it -p 80:80 --name=webserver httpd:latest /bin/bash
root@da6c698a2077:/usr/local/apache2# cd /
root@da6c698a2077:/# ls
bin   dev  home  media	opt   root  sbin  sys  usr
boot  etc  lib	 mnt	proc  run   srv   tmp  var
root@da6c698a2077:/# 


ํ˜ธ์ŠคํŠธ์—์„œ ์ž„์‹œ ํŒŒ์ผ ์ƒ์„ฑ ๋ฐ ํ™•์ธ

๋‹ค๋ฅธ ํ„ฐ๋ฏธ๋„์—์„œ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์ž„์‹œ ํŒŒ์ผ ์ƒ์„ฑ:

toby@tobykakao-host:/var/lib/docker/overlay2/7c035467b164248bc7f33be59a4d528fc69fe67d0ac740423d2bd7d34abc83db/diff# touch Hello-docker

 

toby@tobykakao-host:/var/lib/docker/overlay2/7c035467b164248bc7f33be59a4d528fc69fe67d0ac740423d2bd7d34abc83db/diff# ls
Hello Hello-docker bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

์ปจํ…Œ์ด๋„ˆ์—์„œ ํŒŒ์ผ ์ƒ์„ฑ ํ™•์ธ

์ปจํ…Œ์ด๋„ˆ ์…ธ๋กœ ๋Œ์•„๊ฐ€ ํŒŒ์ผ ์ƒ์„ฑ ํ™•์ธ:

toby@tobykakao:/# ls
Hello Hello-docker bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

์ด ์˜ˆ์ œ๋Š” ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์™€ ์ด๋ฏธ์ง€ ๋ ˆ์ด์–ด์˜ ๊ด€๊ณ„๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ ˆ์ด์–ด๋กœ ๊ตฌ์„ฑ๋œ ์ด๋ฏธ์ง€๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ์—์„œ ๋…๋ฆฝ์ ์œผ๋กœ ์ฝ๊ธฐ-์“ฐ๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ƒ์œ„ ๋ ˆ์ด์–ด๊ฐ€ ์ถ”๊ฐ€๋˜๋”๋ผ๋„ ํ•˜์œ„ ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์œผ๋ฉด์„œ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์ด ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์˜ ๊ฐ€์ƒํ™”์˜ ํ•ต์‹ฌ ํŠน์ง•์ž…๋‹ˆ๋‹ค.


ps. Docker Login ํ•˜๋Š” ๋‚ด์šฉ์ด ๋‹ด๊ธด ๋‹ค์Œ๊ธ€๋กœ ๋Œ์•„์˜ค๊ฒ ์Šต๋‹ˆ๋‹ค.