inspect로 이미지 상세정보 보기
rapa@rapa:~$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest b692a91e4e15 2 weeks ago 142MB
httpd latest f2a976f932ec 2 weeks ago 145MB
centos 7 eeb6ee3f44bd 11 months ago 204MB
rapa@rapa:~$ docker image inspect b692a91e4e15
[
{
"Id": "sha256:b692a91e4e1582db97076184dae0b2f4a7a86b68c4fe6f91affa50ae06369bf5",
"RepoTags": [
"nginx:latest"
],
"RepoDigests": [
"nginx@sha256:790711e34858c9b0741edffef6ed3d8199d8faa33f2870dea5db70f16384df79"
],
...
"RepoDigests": [
"nginx@sha256:790711e34858c9b0741edffef6ed3d8199d8faa33f2870dea5db70f16384df79"
],
다이제스트값으로 다운받게되면 똑같은 이미지를 다운받을 수 있게 됨 (예를 들어 2주뒤에 최신버전이 바뀌었을 경우)
Cmd": [
"/bin/sh",
"-c",
"#(nop) ",
"CMD [\"nginx\" \"-g\" \"daemon off;\"]"
],
nginx 데몬을 실행시켜라
해당 이미지를 이용하여 컨테이너로 배포하면 처음 시작되는 명령
"Entrypoint": [
"/docker-entrypoint.sh"
],
cmd와 비슷하게 처음 컨테이너가 시작되면 동작시키는 명령어
"Layers": [
"sha256:92a4e8a3140f7a04a0e5a15793adef2d0e8889ed306a8f95a6cfb67cecb5f212",
"sha256:e3257a399753c995f54856b0cea3c2b6aa1a95d9a7b542668a46fa4eacf62d53",
"sha256:3a89c8160a43d70433241934b1d418f641e6d207a10b558b67f8aafdb15416b0",
"sha256:f91d0987b144553456431bcb8cc8ddf5d03362701bc2ffc128ce2bd57182defb",
"sha256:bdc7a32279ccdf5aba13d3e50b7b16103e03ff8ef27424ac1a33df24e5a9f602",
"sha256:b539cf60d7bb42871a005e949b550800b99fada0b1c1bca01654e8a506ba2138"
]
도커의 이미지는 처음 만든 이미지를 기준으로 추가되는 내용을 레이어 형태로 얹게된다.
최초 이미지를 base로 하여 추가되는 내용만 저장된다.
docker hub에서 create repository(mynginx)
docker push dustndus8/mynginx:tagname
해당 형태 기억
rapa@rapa:~$ docker image tag nginx:latest dustndus8/mynginx:blue
rapa@rapa:~$ docker image tag nginx:latest dustndus8/mynginx:green
최신버전을 이용해서 mynginx:blue, green라는 걸 만들겠다
rapa@rapa:~$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
dustndus8/mynginx blue b692a91e4e15 2 weeks ago 142MB
dustndus8/mynginx green b692a91e4e15 2 weeks ago 142MB
nginx latest b692a91e4e15 2 weeks ago 142MB
httpd latest f2a976f932ec 2 weeks ago 145MB
centos 7 eeb6ee3f44bd 11 months ago 204MB
blue,green,nginx는 한개의 이미지인 것(ID가 똑같음)
레이어로 관리되기때문에 이름만 다를 뿐 142MB로 관리됨
rapa@rapa:~$ docker push dustndus8/mynginx:blue
The push refers to repository [docker.io/dustndus8/mynginx]
b539cf60d7bb: Mounted from library/nginx
bdc7a32279cc: Mounted from library/nginx
f91d0987b144: Mounted from library/nginx
3a89c8160a43: Mounted from library/nginx
e3257a399753: Mounted from library/nginx
92a4e8a3140f: Mounted from library/httpd
blue: digest: sha256:f26fbadb0acab4a21ecb4e337a326907e61fbec36c9a9b52e725669d99ed1261 size: 1570
rapa@rapa:~$ docker push dustndus8/mynginx:green
The push refers to repository [docker.io/dustndus8/mynginx]
b539cf60d7bb: Layer already exists
bdc7a32279cc: Layer already exists
f91d0987b144: Layer already exists
3a89c8160a43: Layer already exists
e3257a399753: Layer already exists
92a4e8a3140f: Layer already exists
green: digest: sha256:f26fbadb0acab4a21ecb4e337a326907e61fbec36c9a9b52e725669d99ed1261 size: 1570
docker hub에서 내 mynginx repository에 들어가보면 blue와 green이 올라가있는 것을 볼 수 있다.