ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 이미지 배포(Image Deploy)
    BackEnd/docker 2022. 3. 15. 22:10
    반응형

    도커 허브 저장소

      저장소를 생성하려면 로그인이 필요하므로 메인 화면이나 페이지 오른쪽 위 [Sign up]을 클릭해 가입합니다.

     

    이미지 저장소(Repository) 생성

      상단 Repositories을 클릭하면 아래와 같은 화면을 볼 수 있습니다.

      우측 상단에 [Create Repository] 버튼을 클릭해 저장소를 생성합니다.

      저장소에 저장할 이미지의 이름: my-image-name과 간단한 설명: This image repository is for testing.을 입력합니다. 마지막으로 저장소의 Visibility를 설정해 저장소를 다른 사람에게 공개할지 여부를 결정합니다. 기본적으로 비공개 저장소는 1개만 무료이고 그 이상 사용하려면 매달 일정 금액을 결제해야 합니다. [Create] 버튼을 눌러 저장소를 생성합니다.

    저장소 이름: hanseomkim, 이미지 이름: my-image-name

     

    저장소에 이미지 올리기

    # docker container 생성 후 변경 사항 만들기 (test 파일 생성)
    $ docker run -i -t --name commit_container1 ubuntu:14.04
    root@0f629e588c0d:/# echo my first push >> test
    root@0f629e588c0d:/# exit
    exit
    
    # my-image-name:0.0 이미지 커밋
    $ docker commit commit_container1 my-image-name:0.0
    sha256:3dee4dedc553df15da2327907cbe7f7383f40889e5c9ebda4a78373ea3552c97

     

      특정 이름의 저장소에 이미지를 올리려면 저장소 이름(사용자의 이름)을 이미지 앞에 접두어로 추가해야 합니다. docker tag 명령어를 사용하면 이미지의 이름을 추가할 수 있습니다. tag 명령어의 형식은 'docker tag [기존 이미지 이름] [새롭게 생성될 이미지 이름]'입니다.

    $ docker tag my-image-name:0.0 hanseomkim/my-image-name:0.0

     

    Note. tag 명령어로 이미지의 이름을 변경했다고 해서 기존의 이름이 사라지는 것은 아니며, 같은 이미지를 가리키는 새로운 이름을 추가할 뿐입니다.

    $ docker images
    REPOSITORY                 TAG       IMAGE ID       CREATED         SIZE
    hanseomkim/my-image-name   0.0       3dee4dedc553   5 minutes ago   197MB
    my-image-name              0.0       3dee4dedc553   5 minutes ago   197MB

     

      도커 허브 서버에 로그인한 뒤 docker push 명령어를 입력해 이미지를 저장소에 올립니다.

    $ docker login
    ... 생략 ...
    Login Succeeded
    
    $ docker push hanseomkim/my-image-name:0.0
    The push refers to repository [docker.io/hanseomkim/my-image-name]
    5c3dcdacc476: Pushed
    83109fa660b2: Mounted from library/ubuntu
    30d3c4334a23: Mounted from library/ubuntu
    f2fa9f4cf8fd: Mounted from library/ubuntu
    0.0: digest: sha256:560d298c6359d2c885033cc3ea846c87eba57bbdfedcda6f519b653d53f2fa82 size: 1152

      출력 결과를 보면 하나의 레이어만 저장소로 전송되고, 나머지 레이어는 ubuntu:14.04 이미지에서 생성되어 도커 허브의 우분투 이미지 저장소에 이미 존재하므로 전송되지 않았습니다.

     

      도커 허브의 저장소에 실제로 이미지가 올려졌는지 확인합니다. Tags 항목에서 이미지를 확인할 수 있습니다.

     

    이미지 내려받기

    $ docker pull hanseomkim/my-image-name:0.0

     

    Note. 비공개로 설정한 저장소를 다른 계정에 접근 권한을 주려면 저장소 페이지의 Collaborators에 권한을 부여할 사용자 이름을 추가해야 합니다.

     

    조직, 팀 생성

      도커 허브에서는 조직과 팀 단위로 이미지 저장소를 사용할 수 있게 Organizations(조직), Teams(팀) 구성을 제공합니다. 조직 단위로 저장소를 생성할 수도 있으며, 팀을 만들어 다른 개발자의 계정을 팀에 초대할 수도 있습니다. 조직에서 저장소를 생성하면 계정에 속한 저장소와 별도로 취급되므로 이미지의 이름 중 접두어가 계정의 이름이 아닌 조직의 이름으로 설정됩니다.

     

      조직을 생성한 후 새로운 팀을 생성할 수 있습니다. Owner 팀은 조직을 관리하는 권한을 가지는 계정 그룹으로서 조직의 Billing(Private 저장소 비용 지불 등), Setting과 팀에 소속될 계정을 관리할 수 있습니다. [Repositories] 탭을 클릭하면 조직에 소속되는 저장소를 생성할 수 있고, Team의 [Permissions] 탭에 들어가 저장소에 대한 멤버의 권한을 다르게 부여할 수 있습니다.

     

    저장소 웹훅(Webhook) 추가

      저장소에 이미지가 push됐을 때 특정 URL로 http 요청을 전송하도록 설정할 수 있는데, 이 기능을 웹훅(Webhook)이라고 합니다. 이 기능은 저장소에 추가된 새로운 이미지를 각 서버에 배포하는 애플리케이션을 작성할 때 유용하게 활용할 수 있습니다.

     

    사설 레지스트리

      도커 사설 레지스트리(Docker Private Registry)를 사용하면 개인 서버에 이미지를 저장할 수 있는 저장소를 만들 수 있습니다. 이 레지스트리는 컨테이너로서 구현되므로 이에 해당하는 도커 이미지가 존재합니다. 이 이미지는 도커에서 공식적으로 제공하고 있기 때문에 아래의 run 명령어로 간단히 사용할 수 있습니다. 그러나 사용자가 직접 이미지 저장소 및 사용되는 서버, 저장 공간 등을 관리해야 하므로 도커 허브보다는 사용법이 까다롭습니다. 추가 내용은 도커 공식 문서 레지스트리 페이지를 참고하시면 됩니다.

    $ docker run -d --name myregistry \
    -p 5000:5000 \
    --restart=always \
    registry:2.6
    반응형

    'BackEnd > docker' 카테고리의 다른 글

    Dockerfile 명령어  (0) 2022.03.18
    Dockerfile  (0) 2022.03.16
    도커 이미지(Docker Image)  (0) 2022.03.15
    컨테이너 자원 할당 제한  (0) 2022.03.12
    컨테이너 로깅(Container Logging)  (0) 2022.03.12

    댓글

Designed by Tistory.