[카테고리:] Nexus

  • Nexus로 Private Docker Registry 구축기

    Nexus로 Private Docker Registry 구축기

    Private Docker registry 를 만들거나 사내 Docker 저장소 만들 목적

    📦 환경

    • 우분투 22.04 — Server 버전.
    • 도커 설치.

    📌 도커 컨테이너로 Nexus 컨테이너 실행

    docker run -d --name nexus \
    -p 8081:8081 -p 8082:8082 \
    -p 8083:8083 -p 5000:5000 \
    -v nexus-data:/nexus-data \
    sonatype/nexus3

    Nexus 웹 페이지는 http://서버IP:8081 로 접속. 최초, 어드민 계정으로 로그인

    id: admin
    pwd: cat /nexus-data/admin.password 로 명령어 쳤을 때 나오는 명렁어.

    로그인 후, 개인적인 비밀번호로 바꿀 수 있다.

    ✅ Nexus 에서 docker hosted, docker — Proxy Blob 생성

    아래와 같이 순차적으로 생성.

    • docker-hosted
    • docker-hub

    ✅ Nexus 에서 docker-hosted, docker-proxy 저장소 생성

    해당화면에서 Create repository 클릭

    ✔️ docker-hosted 선택.

    • Name은 docker-hosted
    • http 영역 체크 및 5000 입력.
    • Enable Docker V1 API 체크.
    • Blob store docker-hosted 선택.

    ✔️ docker-proxy 선택.

    • Name은 docker-hub
    • Enable Docker V1 API 체크.
    • Remote storage 에 https://registry-1.docker.io 입력.
    • Use Docker Hub 선택.

    ✅ Nexus 에서 Realms 설정.

    설정 ➡️ Realms ➡️ Docker Bearer Token Realm ➡️ Active 로 Save

    ✅ Docker 명령어 HTTP 사용 가능 설정 (v1)

    /etc/docker/daemon.json 파일 생성. 기존에 존재하지 않는 파일이라면 새로 만들어야 한다.

    cat /etc/docker/daemon.json
    
    ---
    
    {
            "insecure-registries" : ["서버IP:5000"]
    }
    
    ---
    위 내용으로 저장.
    
    systemctl restart docker # 도커 재시작.
    docker restart nexus # 넥서스 컨테이너 재시작.

    📌 Private Docker 저장소 로그인

    docker login 서버IP: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

    🚀 Private Docker 저장소에 Push

    docker push 서버IP:5000/도커이미지이름:태그이름

    🚀 Private Docker 저장소에 Pull

    docker pulll 서버IP:5000/도커이미지이름:태그이름

    🧷 SSL이 적용되어야 etc/docker/daemon.json 파일 생성 과정이 생략 가능.