-
이미지 배포(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] 버튼을 눌러 저장소를 생성합니다.
저장소에 이미지 올리기
# 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