[클라우드/Docker 기본(3) - 이미지 조회, tag, push]

SooYeon Yeon·2022년 8월 30일
0

클라우드 Docker

목록 보기
4/24

도커 이미지 세부 정보 조회

  • inspect 명령어

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"
        ],
...
  • digest
 "RepoDigests": [
            "nginx@sha256:790711e34858c9b0741edffef6ed3d8199d8faa33f2870dea5db70f16384df79"
        ],

다이제스트값으로 다운받게되면 똑같은 이미지를 다운받을 수 있게 됨 (예를 들어 2주뒤에 최신버전이 바뀌었을 경우)

  • cmd
Cmd": [
                "/bin/sh",
                "-c",
                "#(nop) ",
                "CMD [\"nginx\" \"-g\" \"daemon off;\"]"
            ],

nginx 데몬을 실행시켜라

해당 이미지를 이용하여 컨테이너로 배포하면 처음 시작되는 명령

  • entrypoint
"Entrypoint": [
                "/docker-entrypoint.sh"
            ],

cmd와 비슷하게 처음 컨테이너가 시작되면 동작시키는 명령어

  • Layer
"Layers": [
                "sha256:92a4e8a3140f7a04a0e5a15793adef2d0e8889ed306a8f95a6cfb67cecb5f212",
                "sha256:e3257a399753c995f54856b0cea3c2b6aa1a95d9a7b542668a46fa4eacf62d53",
                "sha256:3a89c8160a43d70433241934b1d418f641e6d207a10b558b67f8aafdb15416b0",
                "sha256:f91d0987b144553456431bcb8cc8ddf5d03362701bc2ffc128ce2bd57182defb",
                "sha256:bdc7a32279ccdf5aba13d3e50b7b16103e03ff8ef27424ac1a33df24e5a9f602",
                "sha256:b539cf60d7bb42871a005e949b550800b99fada0b1c1bca01654e8a506ba2138"
            ]

도커의 이미지는 처음 만든 이미지를 기준으로 추가되는 내용을 레이어 형태로 얹게된다.

최초 이미지를 base로 하여 추가되는 내용만 저장된다.

도커 이미지 tag

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로 관리됨

  • push하기
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이 올라가있는 것을 볼 수 있다.

이미지를 만드는 방법

  1. 동작중인 컨테이너를 commit하여 이미지를 만든다 (잘 쓰지않는 방법)
  2. Dockerfile을 이용하여 베이스 이미지 지정, 추가 패키지 선택, 컨테이너로 동작시 실행할 명령어 등을 지정한 뒤 이를 build하면 로컬 저장소에 이미지가 생성된다.

0개의 댓글