실행

docker_repos.png

$ docker run -d -p 5554:8081 -p 5555:5555 -p 5556:5556 --name nexus -v nexus-data:/nexus-data sonatype/nexus3
  • 8081: Nexus 웹 서버
  • 5555: Docker Remote 저장소가 HTTP 프로토콜로 커뮤니케이션 할 포트
  • 5556: Docker Local 저장소가 HTTP 프로토콜로 커뮤니케이션 할 포트

구성

  • Local 저장소
  • Remote 저장소
  • Proxy 저장소

docker_repos.png

저장소 이름 때문에 복잡해 보일 수 있습니다. 저장소 타입에 주목해 주세요.

JFrog Artifactory 와 Sonatype Nexus 의 저장소 개념은 비슷하다.
Local 저장소는 내가 만든 artifacts을 저장하는 용도로 사용한다. 즉 private 저장소라고 생각하면 된다.
반면에 Remote 저장소는 proxy 역할을 수행한다. 공식 저장소에 연결 된다.
sbt 저장소라면 https://jcenter.bintray.com 로 연결하고, npm 저장소라면 https://registry.npmjs.org 주소로 연결한다.
그 다음에 두 저장소를 묶는 그룹을 생성한다.
그룹 URL로 접속하면 요청 패키지를 Local, Remote 저장소를 검색해서 다운로드 하기 때문에 private, public 모듈 모두를 하나의 주소를 이용해서 다운로드 할 수 있다.
업로드 또한 마찬가지로 private, public 둘 중 한 곳으로 모듈을 업로드한다.

각 저장소 설정

Local
local_setting.png
Remote
remote_setting.png
Virtual
virtual_settings.png

확인

docker login -u endsoul 211.170.61.55:5556

포트 번호는 docker local repository HTTP 포트다.

docker build . --tag 211.170.61.55:5556/myown

이미지를 생성할 때도 저장소 이름을 사용한다.

docker push 211.170.61.55:5556/myown

명령을 실행하고 웹 UI에서 확인한다.
myown_image.png