728x90

# 1. 이미지 다운로드

 

docker image pull [옵션] 이미지명 [:태그명]

 

# CentOS 이미지 다운로드

# 태그명을 생략하면 latest 버전을 다운로드함

 

hjk@hjk-VirtualBox:~$ sudo docker image pull centos:7

[sudo] hjk의 암호: 



7: Pulling from library/centos

2d473b07cdd5: Pull complete 

Digest: sha256:0f4ec88e21daf75124b8a9e5ca03c37a5e937e0e108a255d890492430789b60e

Status: Downloaded newer image for centos:7

docker.io/library/centos:7

 

 

# CentOS의 모든 태그 이미지 다운로드

# -a 옵션 지정 시 모든 태그 다운로드

# -a 옵션 지정 시 이미지명에 태그 지정을 할 수 없음

 

hjk@hjk-VirtualBox:~$ sudo docker image pull -a centos

 

# 다운로드한 이미지 확인

 

hjk@hjk-VirtualBox:~$ sudo docker image ls

REPOSITORY   TAG        IMAGE ID       CREATED        SIZE

ubuntu       latest     9873176a8ff5   3 days ago     72.7MB

nginx        latest     d1a364dc548d   3 weeks ago    133MB

centos       7          8652b9f0cb4c   7 months ago   204MB

centos       6.6        368c96d786ae   2 years ago    203MB

centos       6.7        9f1de3c6ad53   2 years ago    191MB

centos       6.8        82f3b5f3c58f   2 years ago    195MB

centos       6.9        2199b8eb8390   2 years ago    195MB

centos       6.10       48650444e419   2 years ago    194MB

centos       7.0.1406   cc2cf48cc784   2 years ago    210MB

centos       7.1.1503   e1430271e2f9   2 years ago    212MB

centos       7.2.1511   9aec5c5fe4ba   2 years ago    195MB

centos       7.3.1611   c5d48e81b986   2 years ago    192MB

centos       7.4.1708   9f266d35e02c   2 years ago    197MB

centos       7.5.1804   cf49811e3cdb   2 years ago    200MB

centos       6          d0957ffdf8a2   2 years ago    194MB

centos       5.11       b424fba01172   4 years ago    284MB

centos       5          1ae98b2c895d   4 years ago    285MB

 

 

# 2. 이미지 목록 표시

 

docker image ls [옵션] [리포지토리명]

 

옵션 설명
-all, -a 모든 이미지 표시
--digests * 다이제스트 표시 여부
--no-trunc 결과 모두 표시
--quiet, -q docker 이미지 ID 표시
  • 다이제스트: Docker 레지스트리에 업로드한 이미지는 이미지를 고유하게 식별하기 위해 다이제스트가 부여됨

 

hjk@hjk-VirtualBox:~$ sudo docker image ls -a



REPOSITORY   TAG        IMAGE ID       CREATED        SIZE

ubuntu       latest     9873176a8ff5   3 days ago     72.7MB

nginx        latest     d1a364dc548d   3 weeks ago    133MB

centos       7          8652b9f0cb4c   7 months ago   204MB

 

hjk@hjk-VirtualBox:~$ sudo docker image ls --digests



REPOSITORY   TAG        DIGEST                                                                    IMAGE ID       CREATED        SIZE

ubuntu       latest     sha256:aba80b77e27148d99c034a987e7da3a287ed455390352663418c0f2ed40417fe   9873176a8ff5   3 days ago     72.7MB

nginx        latest     sha256:6d75c99af15565a301e48297fa2d121e15d80ad526f8369c526324f0f7ccb750   d1a364dc548d   3 weeks ago    133MB

centos       7          sha256:0f4ec88e21daf75124b8a9e5ca03c37a5e937e0e108a255d890492430789b60e   8652b9f0cb4c   7 months ago   204MB

 

hjk@hjk-VirtualBox:~$ sudo docker image ls --no-trunc



REPOSITORY   TAG        IMAGE ID                                                                  CREATED        SIZE

ubuntu       latest     sha256:9873176a8ff5ac192ce4d7df8a403787558b9f3981a4c4d74afb3edceeda451c   3 days ago     72.7MB

nginx        latest     sha256:d1a364dc548d5357f0da3268c888e1971bbdb957ee3f028fe7194f1d61c6fdee   3 weeks ago    133MB

centos       7          sha256:8652b9f0cb4c0599575e5a003f5906876e10c1ceb2ab9fe1786712dac14a50cf   7 months ago   204MB

 

hjk@hjk-VirtualBox:~$ sudo docker image ls -q



9873176a8ff5

d1a364dc548d

8652b9f0cb4c

 

hjk@hjk-VirtualBox:~$ sudo docker image ls



REPOSITORY   TAG        IMAGE ID       CREATED        SIZE

ubuntu       latest     9873176a8ff5   3 days ago     72.7MB

nginx        latest     d1a364dc548d   3 weeks ago    133MB

centos       7          8652b9f0cb4c   7 months ago   204MB

 

항목 설명
REPOSITORY 이미지 이름
TAG 이미지 태그명
IMAGE ID 이미지 ID
CREATED 작성일
SIZE 이미지 크기

 

hjk@hjk-VirtualBox:~$ sudo docker image ls



REPOSITORY   TAG        IMAGE ID       CREATED        SIZE

ubuntu       latest     9873176a8ff5   3 days ago     72.7MB

nginx        latest     d1a364dc548d   3 weeks ago    133MB

centos       7          8652b9f0cb4c   7 months ago   204MB

 

# 고유한 다이제스트를 이용한 이미지 식별 

 

# docker 레지스트리에 이미지 업로드

 

hjk@hjk-VirtualBox:~$ sudo docker pull asashiho/dockersample



Using default tag: latest

latest: Pulling from asashiho/dockersample

8ba884070f61: Pull complete 

be5a2e86d256: Pull complete 

7ff082be3903: Pull complete 

Digest: sha256:214fb190b7f3e69ed44c908869cb2b86c2dc5a450128e045e2090bb6f0af9a50

Status: Downloaded newer image for asashiho/dockersample:latest

docker.io/asashiho/dockersample:latest

 

# 업로드된 이미지의 다이제스트 목록 출력

 

# 레지스트리 (Registry)

  • 이미지 호스팅 및 배포를 담당하는 서비스입니다. 
  • 기본 레지스트리는 Docker Hub입니다.
  • 일반적으로 소프트웨어가 상업용 인 경우이를 "개인 및 신뢰할 수있는"레지스트리로 호스팅하게됩니다.

# 리포지토리 (Repository)

  • 관련 이미지 모음 (일반적으로 동일한 애플리케이션 또는 서비스의 서로 다른 버전 제공).
  • "태그가 지정된"이미지 세트입니다.
  • 예를 들어 5 개의 ubuntu:latest이미지에 태그를 지정할 수 있습니다.

 

hjk@hjk-VirtualBox:~$ sudo docker image ls --digests asashiho/dockersample



REPOSITORY              TAG       DIGEST                                                                    IMAGE ID       CREATED       SIZE

asashiho/dockersample   latest    sha256:214fb190b7f3e69ed44c908869cb2b86c2dc5a450128e045e2090bb6f0af9a50   6d041c204453   2 years ago   319MB

 

 

 

 

# 3. 이미지 상세 정보 확인

 

docker image inspect

 

  • 정보 형식 : JSON, 텍스트 기반 데이터 포맷

 

# 이미지 상세 정보 표시

  • “Id” : 이미지 ID
  • “Created” : 작성일
  • “DockerVersion” : Docker 버전
  • “Architecture” : CPU 아키텍처

 

hjk@hjk-VirtualBox:~$ sudo docker image inspect centos:7

[sudo] hjk의 암호: 

[

    {

…

        "Id": "sha256:8652b9f0cb4c0599575e5a003f5906876e10c1ceb2ab9fe1786712dac14a50cf",

…

        "Created": "2020-11-14T00:20:04.644613188Z",

…

        "DockerVersion": "19.03.12",

…

        "Architecture": "amd64",

…



    }

]

 

# OS 정보 취득

 

# --format 옵션 : OS 정보 출력, OS의 값은 루트 아래(이름 없음)에 있는 “OS”안에 설정되어 있음

 

hjk@hjk-VirtualBox:~$ sudo docker image inspect --format="{{ .Os}}" centos:7



linux

 

 

# image 정보 취득

 

# ContainerConfig의 Image 값 출력

 

hjk@hjk-VirtualBox:~$ sudo docker image inspect --format="{{ .ContainerConfig.Image }}" centos:7

sha256:05e222a9fa848efd0d4dd0969ea27c789a1eff8445d25c4f13f932ead6e3b674

 

# 4. 이미지 태그 설정

 

docker image tag <Docker Hub 사용자명>/이미지명: [태그명]

 

# 이미지에 대한 태그 설정

 

# 이미지 이름 : nginx

# 사용자명 : asashiho

# 컨테이너명 : webserver

# 버전 : 1.0

 

hjk@hjk-VirtualBox:~$ sudo docker image ls



REPOSITORY         TAG        IMAGE ID       CREATED        SIZE

nginx                   latest     d1a364dc548d   3 weeks ago    133MB



hjk@hjk-VirtualBox:~$ sudo docker image tag nginx asashiho/webserver:1.0



# 확인 사항 : 태그를 붙인 이미지(asashiho/webserver:1.0)와 원래의 이미지(nginx)의 “IMAGE ID”가 동일함



hjk@hjk-VirtualBox:~$ sudo docker image ls



REPOSITORY              TAG        IMAGE ID       CREATED        SIZE

asashiho/webserver      1.0        d1a364dc548d   3 weeks ago    133MB

nginx                   latest     d1a364dc548d   3 weeks ago    133MB

 

 

# 5. 이미지 검색

 

docker search [옵션] <검색 키워드>

 

옵션 설명
--no-trunc 결과를 모두 표시
--limit n건의 검색 결과 표시
--filter=stars=n 즐겨찾기의 (n 이상) 지정정

 

# Docker Hub에 공개되어 있는 이미지 검색

 

hjk@hjk-VirtualBox:~$ sudo docker search nginx

[sudo] hjk의 암호: 



NAME                               DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED

nginx                              Official build of Nginx.                        15057     [OK]       

jwilder/nginx-proxy                Automated Nginx reverse proxy for docker con…   2039              [OK]

richarvey/nginx-php-fpm            Container running Nginx + PHP-FPM capable of…  814                 [OK]

 

항목 설명
NAME 이미지 이름
DESCRIPTION 이미지 설명
STARS 즐겨찾기
OFFICIAL 공식 이미지
AUTOMATED Dockerfile 바탕으로 자동 생성된 이미지

 

# 인기있는 이미지 검색

 

hjk@hjk-VirtualBox:~$ sudo docker search --filter=stars=1000 nginx



NAME                  DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED

nginx                 Official build of Nginx.                        15057     [OK]       

jwilder/nginx-proxy   Automated Nginx reverse proxy for docker con…   2039                 [OK]

 

  • Docker Hub에 공개되어 있는 이미지가 모두 안전하다고 볼 수 없기 때문에 Docker 이미지를 이용할 때는 공식 이미지 또는 Dockerfile이 제대로 공개되어 있는 것을 선택하여 확인 후 사용할 것

 

# 6. 이미지 삭제

 

docker image rm [옵션] 이미지명 [이미지명]

 

옵션 설명
--force, -f 이미지를 강제로 삭제
--no-prune 중간 이미지를 삭제하지 않음

 

docker image prune [옵션]

 

옵션 설명
--force, -f 이미지를 강제로 삭제
--all, -a 사용하지 않은 이미지를 모두 삭제

 

 

# 이미지 삭제

 

hjk@hjk-VirtualBox:~$ sudo docker image rm nginx



Error response from daemon: conflict: unable to remove repository reference "nginx" (must force) - container 3e64d7145e5a is using its referenced image d1a364dc548d



hjk@hjk-VirtualBox:~$ sudo docker image rm -f nginx



Untagged: nginx:latest

Untagged: nginx@sha256:6d75c99af15565a301e48297fa2d121e15d80ad526f8369c526324f0f7ccb750

Deleted: sha256:d1a364dc548d5357f0da3268c888e1971bbdb957ee3f028fe7194f1d61c6fdee

 

 

# 7. Docker Hub에 로그인

 

docker login [옵션] [서버]

 

옵션 설명
--password, -p 비밀번호
--username, -u 사용자명

 

  • 로그인에 성공하면 ‘Login Succeded’라는 메시지가 표시됨
  • 서버명을 지정하지 않을 경우 Docker Hub에 액세스 됨
  • 다른 환경에 Docker 리포지토리가 있는 경우 서버명을 지정하여 사용

 

 

# Docker Hub에 로그인

 

hjk@hjk-VirtualBox:~$ sudo docker login

Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.

Username: [Docker Hub ID]

Password: [Docker Hub PW]

WARNING! Your password will be stored unencrypted in /home/hjk/.docker/config.json.

Configure a credential helper to remove this warning. See

https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

 

 

 

# -p 옵션은 비밀번호가 표시되기 때문에 보안상 권장하지 않음

 

hjk@hjk-VirtualBox:~$ sudo docker login -u [Docker Hub ID] -p [Docker Hub PW]

WARNING! Using --password via the CLI is insecure. Use --password-stdin.

WARNING! Your password will be stored unencrypted in /home/hjk/.docker/config.json.

Configure a credential helper to remove this warning. See

https://docs.docker.com/engine/reference/commandline/login/#credentials-store



Login Succeeded

 

 

# 8. 이미지 업로드

 

docker image push 이미지명 [:태그명]

 

<Docker Hub 사용자명>/이미지명:[태그명]

 

 

hjk@hjk-VirtualBox:~$ sudo docker image tag nginx khj708/webserver:1.0



hjk@hjk-VirtualBox:~$ sudo docker image ls



REPOSITORY         TAG       IMAGE ID       CREATED        SIZE

khj708/webserver   1.0       4f380adfc10f   19 hours ago   133MB

nginx              latest    4f380adfc10f   19 hours ago   133MB

ubuntu             latest    9873176a8ff5   6 days ago     72.7MB

centos             7         8652b9f0cb4c   7 months ago   204MB



hjk@hjk-VirtualBox:~$ sudo docker push khj708/webserver:1.0



The push refers to repository [docker.io/khj708/webserver]

c6d74dcb7fe7: Mounted from library/nginx 

b50a193ebf2e: Mounted from library/nginx 

165eb6c3c0d3: Mounted from library/nginx 

cf388fcf3527: Mounted from library/nginx 

2418679ca01f: Mounted from library/nginx 

764055ebc9a7: Mounted from library/nginx 

1.0: digest: sha256:2f1cd90e00fe2c991e18272bb35d6a8258eeb27785d121aa4cc1ae4235167cfd size: 1570

 

# 업로드 완료 후 Docker Hub에 새로운 이미지가 등록된 것을 확인할 수 있음

 

 

# 9. Docker Hub에서 로그아웃

 

hjk@hjk-VirtualBox:~$ sudo docker logout



Removing login credentials for https://index.docker.io/v1/
728x90

+ Recent posts