목차

Nexus Repository Manager 3 (OSS Version) 설치

Private Container Image 저장소를 만들기 위해 Nexus Registory Manager(이하 Nexus) 구성을 하려고 합니다.

Nexus Data 저장 공간 생성

  • Nexus Data 공간을 생성합니다.
$ mkdir /data
$ chown 200:200 /data

UID/GID 는 200 으로 설정합니다.(Container Image 에 선언되어 있습니다.)

Use Docker

  • Docker 를 이용할 경우, 아래와 같이 명령을 수행합니다.
$ docker run -d -p 8081:8081 -p 5000:5000 --name nexus -v /data:/nexus-data sonatype/nexus3

Use Podman

  • Podman 을 이용할 경우, 아래와 같이 명령을 수행합니다.
$ podman run -d -p 8081:8081 -p 5000:5000 --name nexus -v /data:/nexus-data sonatype/nexus3

Nexus 초기 설정

Private Container Image 저장소 생성

Container Image Push

  • 아래와 같이 Docker Host 에서 /etc/docker/daemon.json 를 수정하여 Private Image Repository 를 사용 할 수 있도록 추가합니다.
$ cat /etc/docker/daemon.json 
{
        "insecure-registries" : ["192.168.200.92:5000"]
}
  • Docker login 을 진행합니다.
$ docker login 192.168.200.92:5000
Username: admin
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
   
Login Succeeded
  • Container Image 를 Push 하기 위해 tag 를 수정합니다.
$ docker tag test-go-web 192.168.200.92:5000/test-go-web:latest
$ docker images
REPOSITORY                        TAG                 IMAGE ID            CREATED             SIZE
<none>                            <none>              6a111295a403        8 days ago          386MB
test-go-web                       latest              4aa4b4c6d791        8 days ago          7.49MB
192.168.200.92:5000/test-go-web   latest              4aa4b4c6d791        8 days ago          7.49MB
golang                            alpine              760fdda71c8f        3 weeks ago         370MB
  • Container Image 를 Push 합니다.
$ docker push 192.168.200.92:5000/test-go-web
The push refers to repository [192.168.200.92:5000/test-go-web]
3417e2abcc0c: Pushed
latest: digest: sha256:35e67bc46ce93066a042e97954afeff9a7f2c6498783040703a32efa1a4c4e21 size: 528

위와 같이 Push 가 완료가 되고, 아래와 같이 Nexus GUI 에서 Container Image 저장 상태를 확인 할 수 있습니다.

참고 자료