이 글은 Docker Compose를 사용하여 Portainer를 설치하고, Portainer를 통해 Nexus Repository Manager 서비스를 구축하는 방법을 단계별로 안내합니다. Portainer는 Docker 환경을 관리하기 위한 강력한 웹 UI 도구이며, Nexus는 아티팩트(소프트웨어 빌드 산출물)를 관리하는 데 필수적인 도구입니다. 이 가이드를 통해 두 가지 모두 쉽게 설정할 수 있습니다.
1. Portainer 설치 및 초기 설정 🐳
Portainer는 Docker 컨테이너로 설치하는 것이 가장 일반적입니다. Docker Compose를 사용하면 한 번의 명령으로 Portainer 컨테이너를 쉽게 배포할 수 있습니다.
1.1 Docker Compose 파일 작성
먼저, docker-compose.yml 파일을 생성하고 다음 내용을 추가합니다.
version: '3.8'
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
restart: always
ports:
- "9000:9000"
- "8000:8000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
volumes:
portainer_data:
- image:
portainer/portainer-ce:latest는 최신 Portainer Community Edition 이미지를 사용합니다. - container_name: 컨테이너의 이름을
portainer로 지정합니다. - ports:
9000포트는 Portainer 웹 UI에 접속하는 데 사용되며,8000포트는 Docker 컨테이너에 대한 통신에 사용됩니다. - volumes: **
docker.sock**을 마운트하여 Portainer가 Docker 데몬에 접근할 수 있도록 하고,portainer_data볼륨을 사용하여 Portainer의 설정 데이터를 영구적으로 저장합니다.
1.2 Portainer 실행
터미널에서 docker-compose.yml 파일이 있는 디렉토리로 이동하여 다음 명령어를 실행합니다.
docker compose up -d
이 명령어를 실행하면 백그라운드에서 Portainer 컨테이너가 실행됩니다.
1.3 Portainer 접속
웹 브라우저를 열고 **http://<서버IP>:9000**으로 접속합니다.
초기 접속 시 관리자 계정을 생성하라는 화면이 나타납니다. admin 계정의 비밀번호를 설정하고 Create user 버튼을 클릭합니다.
계정 생성 후, Connect to Docker 화면이 나타나는데, Local 환경을 선택하고 **Connect**를 클릭합니다. 이제 Portainer 대시보드에 접속하여 Docker 환경을 시각적으로 관리할 수 있습니다.
2. Portainer를 이용한 Nexus 서비스 구현 🛠️

이제 Portainer의 웹 UI를 사용하여 Nexus Repository Manager를 설치해 보겠습니다.
2.1 Nexus 컨테이너 설정
Portainer 대시보드에서 Stacks 메뉴로 이동합니다. Add stack 버튼을 클릭하여 새로운 스택을 생성합니다.
- Name: 스택 이름을 **
nexus**로 지정합니다. - Web editor: 아래의
docker-compose.yml내용을 붙여넣습니다.
version: '3.8'
services:
nexus:
image: sonatype/nexus3
container_name: nexus
restart: always
ports:
- "8081:8081"
volumes:
- nexus-data:/nexus-data
environment:
- INSTALL4J_ADD_VM_PARAMS=-Xms2g -Xmx2g
volumes:
nexus-data:
- image: 공식 Nexus 3 이미지를 사용합니다.
- ports:
8081포트를 외부에 노출하여 Nexus에 접속할 수 있도록 합니다. - volumes:
nexus-data볼륨을 사용하여 Nexus의 데이터(저장소, 설정 등)를 영구적으로 보존합니다. - environment:
INSTALL4J_ADD_VM_PARAMS환경 변수를 통해 Nexus가 사용하는 JVM 메모리 설정을 지정합니다. (서버 사양에 따라 조정 가능)
2.2 Nexus 서비스 배포
설정을 완료한 후 Deploy the stack 버튼을 클릭합니다.
Portainer가 sonatype/nexus3 이미지를 다운로드하고 Nexus 컨테이너를 생성하여 실행합니다.
2.3 Nexus 접속 및 초기 설정
컨테이너가 정상적으로 실행된 후, 웹 브라우저에서 **http://<서버IP>:8081**로 접속합니다. Nexus 초기 로딩에는 시간이 다소 소요될 수 있습니다.
- 관리자 비밀번호 확인: Nexus에 처음 접속하면 관리자 계정 **
admin**의 임시 비밀번호를 찾아야 합니다. Portainer의Containers메뉴에서nexus컨테이너를 선택하고Logs탭을 확인합니다.- 로그에서 **
admin password**를 검색하면 임시 비밀번호를 찾을 수 있습니다.
- 로그에서 **
- 로그인 및 비밀번호 변경:
admin계정과 임시 비밀번호로 로그인합니다.- 로그인 후 새 비밀번호를 설정하고, 익명 사용자 접근(Anonymous Access)을 허용할지 여부를 선택합니다.
- Repository 확인: 설정이 완료되면
Browse메뉴에서maven-public,npm-public등 기본적으로 생성된 다양한 저장소들을 확인할 수 있습니다.
이제 여러분의 서버에 Nexus Repository Manager가 성공적으로 설치되었고, Portainer를 통해 편리하게 관리할 수 있게 되었습니다.