Windows에서 Docker Hub에서 이미지를 다운로드하거나 업로드해 봅니다.

개요



Windows 10에 Docker 환경을 구축했기 때문에 여러 가지 시도했습니다.
이번에는 Docker 컨테이너의 원본이되는 이미지 다운로드, 업로드 등 Docker를 설치하여 먼저 할 일의 명령 목록과 정리

Docker와 Docker 이미지의 관계는 아래를 참조

Docker의 기본 기능과 전체 이미지를 정리해 봅니다.

운영 환경과 Docker 환경 구축 방법은 아래를 참조
  • Windows 10 Pro 64bit
  • Docker for Windows

  • Windows에서 Docker 환경을 사용해보십시오

    할 수 있게 되는 것


  • 자신의 로컬 컴퓨터에 Docker Hub에서 원하는 이미지를 다운로드
  • 내 이미지를 Docker Hub에 업로드

  • 대략적인 작업 시간



    30분

    사전 준비



    Docker Hub에 이미지를 업로드하려면 Docker Hub 계정 필요
    (자신의 로컬 머신에 이미지를 다운로드하는 것만으로는 불필요)
    계정은 다음 페이지에서 만들 수 있습니다.

    Docker Hub

    모든 ID, 이메일 주소, 비밀번호를 등록하기만 하면 계정을 만들 수 있습니다.

    참고서적



    프로그래머를 위한 Docker 교과서 제3장
    알기 쉽고 도커의 입문서적인 양책입니다^^ 모두 구입하고 있어 판매가 호조인지 제2판이 발매되고 있었으므로 링크 갱신 【Kindle판】프로그래머를 위한 Docker 교과서
    사용 명령 목록 docker pull 이미지 이름 : 태그 이름 docker images docker inspect 이미지 이름 docker tag 원래 이미지 이름 : 태그 이름 사용자 이름 / 이미지 이름 : 태그 이름 docker search 이미지 이름 docker rmi 이미지 이름 docker login docker push 사용자 이름 / 이미지 이름 : 태그 이름 docker logout docker pull 이미지 이름 : 태그 이름 Docker Hub에서 이미지를 다운로드하는 명령 태그명은 임의 항목 이미지 이름 : 태그 이름으로 태그 이름에 버전을 지정할 수 있지만 지정하지 않으면 최신 다운로드 pull만 있으면 Docker Hub의 계정은 불필요(물론 로그인도 불필요) > docker pull ubuntu Using default tag: latest latest: Pulling from library/ubuntu 50aff78429b1: Pull complete f6d82e297bce: Pull complete 275abb2c8a6f: Pull complete 9f15a39356d6: Pull complete fc0342a94c89: Pull complete Digest: sha256:ec0e4e8bf2c1178e025099eed57c566959bb408c6b478c284c1683bc4298b683 Status: Downloaded newer image for ubuntu:latest docker images 로컬 컴퓨터에 다운로드하는 이미지 목록을 표시하는 명령 > docker images REPOSITORY TAG IMAGE ID CREATED SIZE 우분투 최신 00fd29ccc6f1 2 weeks ago 111MB 주요 항목의 설명은 다음과 같습니다. * REPOSITORY 이미지 이름 * TAG 태그 이름(일반적으로 버전) * IMAGE ID 이미지 ID * CREATED 작성일 docker inspect 이미지 이름 이미지 세부 정보를 확인하는 명령 자세한 정보가 JSON 형식으로 반환됨 > docker inspect ubuntu [ { ~~~ 생략~~~ "Architecture": "amd64", "Os": "linux", "Size": 110512187, "VirtualSize": 110512187, ~~~ 생략~~~ docker tag 원래 이미지 이름 : 태그 이름 사용자 이름 / 이미지 이름 : 태그 이름 다운로드한 이미지에 알기 쉬운 태그를 지정하는 명령 관습적으로 붙이는 유저명은 Docker Hub의 ID, 태그명은 버젼이 좋다 > docker tag ubuntu user/server01:0.1 > docker images REPOSITORY TAG IMAGE ID CREATED SIZE 우분투 최신 00fd29ccc6f1 2 weeks ago 111MB user/server01 0.1 00fd29ccc6f1 2 weeks ago 111MB docker images 명령으로 확인 태그를 붙인 것만으로 이미지의 실체는 같기 때문에 같은 이미지 ID가 된다 docker search 이미지 이름 Docker Hub에 게시된 이미지를 검색하는 명령 > docker search ubuntu NAME DESCRIPTION STARS OFFICIAL AUTOMATED ubuntu Ubuntu is a Debian-based Linux operating s... 7032 [OK] dorowu/ubuntu-desktop-lxde-vnc Ubuntu with openssh-server and NoVNC 153 [OK] 주요 항목의 설명은 다음과 같습니다. * NAME 이미지 이름 * STARS 즐겨찾기 수 * OFFICIAL 공식 이미지라면 [OK] * AUTOMATED Dockerfile을 바탕으로 자동 생성된 이미지라면 [OK]가 된다 Dockerfile에 대해서는 다른 기회에 게시 예정,,, 주의 docker search와 같은 Docker Hub에 연결하는 명령 (docker pull / docker login / docker search 등)에서 다음 오류가 발생하면 Docker Network의 DNS 설정을 Fixed로 변경해보십시오. Error response from daemon: Get https://index.docker.io/v1/search?q=ubutu&n=25: dial tcp: lookup index.docker.io on 192.168.1.1:XX: read udp 192.168.2.2:XXXXX- >192.168.11.1:XX: i/o timeout

    Settings를 여는 방법은 아래를 참조하십시오.
    Windows에서 Docker 환경을 사용해보십시오

    docker rmi 이미지 이름



    다운로드한 이미지를 삭제하는 명령
    > docker rmi user/server01:0.1
    Untagged: user/server01:0.1
    

    docker login



    Docker Hub에 ID/비밀번호로 로그인하는 명령
    > 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: IDxxx
    Password:
    Login Succeeded
    

    docker push 사용자 이름 / 이미지 이름 : 태그 이름



    Docker Hub에 지정된 이미지를 업로드하는 명령
    > docker push user/server01:0.1
    The push refers to a repository [docker.io/user/server01]
    f17fc24fb8d0: Layer already exists
    6458f770d435: Layer already exists
    5a876f8f1a3d: Layer already exists
    d2f8c05d353b: Layer already exists
    48e0baf45d4d: Layer already exists
    0.1: digest: sha256:f871d0805ee3ce1c52b0608108dbdf1b447a34d22d5c7278a3a9dd78fc12c663 size: 1357
    

    주의



    Docker Hub에 pull하면 이미지 사용자 이름과 Docker Hub ID가 일치하지 않으면 다음 오류가 발생합니다.
    > docker push user/server01:0.1
    The push refers to a repository [docker.io/user/server01]
    f17fc24fb8d0: Preparing
    6458f770d435: Preparing
    5a876f8f1a3d: Preparing
    d2f8c05d353b: Preparing
    48e0baf45d4d: Preparing
    denied: requested access to the resource is denied
    

    user 부분을 docker tag 명령으로 Docker Hub ID로 변경하고 다시 push하면 OK

    docker logout



    Docker Hub에서 로그아웃하는 명령
    > docker logout
    Removing login credentials for https://index.docker.io/v1/
    

    좋은 웹페이지 즐겨찾기