목차
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 저장 상태를 확인 할 수 있습니다.