save, export와 같은 방법의 단점
save
나export
와 같은 방법으로 이미지를 단일 파일로 추출해서 배포할 수도 있지만
이미지 파일의 크기가 너무 크거나 도커 엔진의 수가 많다면 이미지를 파일로 배포하기 어렵다.- 도커의 이미지 구조인 레이어 형태를 이용하지 않으므로 매우 비효율적이다.
도커 허브는 도커 이미지를 저장하기 위한 클라우드 서비스이다.
만든 이미지를 다른 사용자에게 공개해도 상관없다면 공개(Public) 저장소를 무료로 사용할 수 있다.
Docker Hub 계정 생성
계정 이름이 저장소 이름으로 사용된다. 신중하게 만들쟈..😳
가입 시 입력한 이메일로 인증 메일이 온다. 파란 버튼 ㄱㄱ
헤더의 [Repository] 클릭
[Create Repository]
이미지 이름, 설명 입력 > 공개 여부 선택 > [Create]
Visibility 공개 여부
- Public 다른 사용자가
docker search
와pull
명령어로 이미지를 사용할 수 있다.- Private 저장소의 접근 권한이 있는 계정으로 로그인해야 저장소를 사용할 수 있다.
- 비공개로 설정한 저장소는 접근 권한을 가진 계정(Collaborator)만 이미지를 내려받을 수 있다.
- Collaborator로 추가된 사용자는 저장소의 공개 여부에 상관 없이 이미지를 저장소에
push
할 수 있다.
저장소에 올릴 테스트 이미지를 생성한다.
💡 특정 이름의 저장소에 이미지를 올리려면 저장소 이름(사용자 이름)을 이미지 앞에 접두어로 추가해야 한다.
docker tag
명령어를 사용해서 이미지의 이름을 추가한다.
docker tag [기존 이미지 이름] [새롭게 생성할 이미지 이름]
docker login
push
명령어를 입력해 이미지를 저장소에 올린다.
하나의 레이어만 저장소로 전송되고, 나머지 레이어는
ubuntu:14.04
이미지에서 생성되어 도커 허브의 우분투 이미지 저장소에 이미 존재하므로 전송되지 않는다.
도커 허브의 저장소에 잘 올라갔는지 [Tags] 항목에서 이미지를 확인한다.
별도의 로그인 없이도 이 이미지를 내려받을 수 있다.
docker pull ejuhee/my-image-name:0.0
조직 단위로 저장소를 생성할 수 있다.
팀을 만들어 다른 개발자의 계정을 팀에 초대할 수 있다.
조직에서 저장소를 생성하면 계정에 속한 저장소와 별도로 취급되므로 이미지의 이름 중 접두어가 조직의 이름으로 설정된다.
헤더의 [Organizations] 클릭
[Create Organizations]
유료로 바뀌었다..ㅋㅋ... 다음 기회에 ~ 👋🏻
push
됐을 때 특정 URL로 http 요청을 전송하도록 설정할 수 있다.