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 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
...
๋์ปค ์ด๋ฏธ์ง๋ช ์ ๊ธฐ๋ณธ ํ์์ <๋ค์์คํ์ด์ค>/<์ด๋ฏธ์ง๋ช >:<ํ๊ทธ>์ด๊ณ , ๋ณ๋๋ก ํน์ ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด ์๋์ผ๋ก ๋์ปค ํ๋ธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ค์์คํ์ด์ค๋ก ์ง์ ๋ฉ๋๋ค.
- ๋์ปค ํ๋ธ์์ ์ ๊ณต๋ ์ด๋ฏธ์ง์ ๋ถ์ฐ ํด์(distribution hash) ํ์๋, ๋ค์ด๋ก๋ํ ์ด๋ฏธ์ง๋ ์ฌ๋ฌ ๊ณ์ธต(layer)์ผ๋ก ๋ง๋ค์ด์ง๋๋ฐ ๊ฐ ์ด๋ฏธ์ง์ ํต์ฌ ์ ๋ณด๋ฅผ ๋ฐ์ด๋๋ฆฌ ํํ์ ์ ๋ณด๋ก ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค.
- ๋ค์ด์ ์คํธ๊ฐ์ ์๊ฒฉ ๋์ปค ๋ ์ง์คํธ๋ฆฌ(๋์ปค ํ๋ธ)์์ ๊ด๋ฆฌํ๋ ์ด๋ฏธ์ง์ ๊ณ ์ ์๋ณ๊ฐ์ ๋ปํ๊ณ , ์ด ๊ฐ์ ํฌํจํ ์กฐํ๋ docker images --digests ์ต์ ์ ์ฌ์ฉํฉ๋๋ค.
- ๋ค์ด๋ก๋ํ ์ด๋ฏธ์ง ์ ๋ณด๊ฐ ๋ก์ปฌ์ ์ ์ฅ๋์์์ ๋ํ๋ด๋ ์ํ ํ์.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
...
๊ฐ๋จํ ํํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์กฐ์ ๋๋ค.
- ๋์ปค ์ด๋ฏธ์ง ๊ตฌ์กฐ์ ๊ธฐ๋ณธ ์ด์์ฒด์ ๋ ์ด์ด๋ค์ ์๋๋ค.
- ์ด์์ฒด์ ๋ฒ ์ด์ค ์ด๋ฏธ์ง ์์ ์ํ์น ์น ์๋ฒ๋ฅผ ์ค์นํ ๋ ์ด์ด๋ฅผ ์ฌ๋ฆฐ๋ค.
- ์ํ์น ์น ์๋น์ค์ ํ์ํ ๋ฆฌ์์ค ์ ๋ณด ๋ฐ ํ๊ฒฝ ์ ๋ณด๊ฐ ํฌํจ๋ ๋ ์ด์ด๋ฅผ ์ฌ๋ฆฐ๋ค. ์ด๋ ๊ฒ ๊ตฌ์ฑ๋ ์ด๋ฏธ์ง๋ ๋ถ๋ณ(immutable)์ ์ฝ๊ธฐ ์ ์ฉ ๋ ์ด์ด๋ค์ ์งํฉ ๊ตฌ์กฐ์ธ ์ ๋์ธ ํ์ผ ์์คํ (union filesystem)์ด๋ค.
- ๋์ปค ์ด๋ฏธ์ง๋ฅผ ์คํํ๋ฉด ์ฌ๋ฌ ๊ฐ์ ์ปจํ ์ด๋๋ฅผ ๊ตฌ๋ํ ์ ์๋ค. ๊ฐ๊ฐ์ ์ปจํ ์ด๋์์ ๋ฐ์ํ ๋ชจ๋ ๋ณ๊ฒฝ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ์ฝ๊ณ -์ฐ๊ธฐ ๋ ์ด์ด๋ฅผ ๋๊ณ ์ ์ฅํ๊ฒ ๋๋ค.
์ด๋ฏธ์ง ๋ ์ด์ด๋ ๋ถ๋ณ์ด์ง๋ง, ๊ด๋ฆฌ์๊ฐ ๊ถํ์ผ๋ก ํธ์คํธ ์ด์์ฒด์ ์์ ๊ฐ ๋ ์ด์ด์ ์ ๊ทผํ๊ฒ ๋๋ฉด ํ์ผ ์์ฑ ๋ฐ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํฉ๋๋ค.
์ ์ด๋ฐ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ผ๊น?
๋์ปค ์ด๋ฏธ์ง๋ ์๋ฐฑ 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
๋ ์ด์ด์ ํจ์จ์ ์ฌ์ฉ ์ด์
- ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํ๋ฉด ์ฌ๋ฌ ์ปจํ ์ด๋์์ ๊ณ์ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
- ์์ ๋ ๋ ์ด์ด๋ง ์ถ๊ฐ ๋ค์ด๋ก๋ํ๋ฏ๋ก ๊ธฐ์กด ๋ ์ด์ด๋ฅผ ๊ณ์ ์ฌ์ฉํ์ฌ ์ ์ฅ ๊ณต๊ฐ์ด ์ ์ฝ๋ฉ๋๋ค.
๋์ปค๋ ์ด๋ฌํ ํน์ง์ ํตํด ์ด๋ฏธ์ง์ ๊ฐ์ํ์ ํจ์จ์ ์ธ ํ์ผ ์์คํ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
๋ค๋ฅธ ํฐ๋ฏธ๋์ ์ด์ฉํ์ฌ ์ปจํ ์ด๋ ์คํ
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 ํ๋ ๋ด์ฉ์ด ๋ด๊ธด ๋ค์๊ธ๋ก ๋์์ค๊ฒ ์ต๋๋ค.
'โ๏ธ Cloud Native > ๐ณ Docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Docker] Docker Container ๋ช ๋ น์ด (with Ngnix Container ์คํ) (0) | 2024.11.05 |
---|---|
[Docker] Docker ๋ช ๋ น์ด ํ์ฉ Part.2 (0) | 2024.10.31 |
[Docker] Docker Installation Check (๋์ปค ์ค์น ํ์ธ) (0) | 2024.10.11 |
[Docker] Ubuntu์ Docker Community Edition (CE) ์ค์น (0) | 2024.10.08 |
[Docker] Docker Install (๋์ปค ์ค์น with UTM, Ubuntu install) (0) | 2024.10.07 |