dockercompose로 ubuntu에 nexus 설치하기

ubuntu 1804 dockercompose nexus 설치

들어가기

ubuntu 18.04 버전에 docker compose를 사용해서 nexus를 도커로 설치하고 실행해 보려 한다.

미리 ubuntu에 docker와 docker compose 가 미리 설치되어 있어야 한다. 해당 내용은 이 글에 포함되어 있지 않다.

실습

1. 도커 관리용 폴더 만들기

생성할 도커 컨테이너의 설정파일과 볼륨을 관리하기 위해 폴더를 만들 것이다.

나느 아래처럼 홈디렉토리에 생성할 것이다.

1
mkdir -p ~/docker/nexus/nexus-data

그리고 nexus폴더 내부에 docker-compose.yml 파일을 생성하고, 그 내용을 아래처럼 만들어 준다.

2. docker-compose.yml 파일

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
version: '2'

services:
nexus3:
image: 'sonatype/nexus3:latest'
container_name: 'nexus3'
restart: always
expose:
- '8081'
ports:
- '8081:8081'
volumes:
- './nexus-data:/nexus-data'
environment:
TZ: "Asia/Seoul"
networks:
default:
external:
name: devops

포트를 8081로 셋팅하였고, nexus-data를 /home/docker/nexus-data 에 볼륨으로 연결 하였다.

네트워크를 쓸지는 모르겠지만 devops로 설정했다.

다음 명령어로 devops라는 docker network를 생성하자.

1
sudo docker network create devops

3. docker-compose.yml로 nexus 컨테이너 생성

아래 명령어를 docker-compose.yml이 있는 경로에서 실행하자.

1
sudo docker-compose up -d

위 명령얼 실행하면 자동으로 nexus 이미지를 다운받고 nexus 컨테이너를 실행 시킬 것이다.

아래 명령으로 docker compose로 실행한 컨테이너를 확인하자.

물론 docker-compose.yml 이 있는 경로에서 명령어를 입력해야 한다.

1
sudo docker-compose ps

state에 up으로 컨티에너가 실행 되었다는 것을 알 수 있다.

docker-compose.yml 파일이 있는 경로에서 아래 명령어를 치면 해당 컨테이너의 log를 볼수도 있다. 만약 컨테이너에 문제가 있다고 생각하면 로그를 확인 하자.

1
sudo docker-compose logs -f -t --tail="all"

음 브라우저에 http://localhost:8081로 접근했는데 페이지가 열리지 않아서 로그를 확인해보니 위와 같은 오류가 로그로 나오고 있다.

아마 nexus컨테이너가 동작하면서 호스트의 nexus-data 에 파일을 생성해야 하는데 권한 문제가 있나보다.

일단 실행중인 컨테이너를 멈추고 해당 폴더에 권한을 부여해봐야 겠다.

아래 명령어로 실행시킨 nexus 컨테이너를 정지 시키자.

물론 docker-compose.yml 이 있는 경로에서 실행하자.

1
sudo docker-compose down

위 명령어로 해당 컨테이너를 종료하고 이미지를 삭제한다.

그리고 아까 생성했던 /home/docker/nexus/nexus-data 폴더의 권한을 수정해보자.

1
sudo chmod 777 /home/docker/nexus/nexus-data

무언가 도커에 다른 방법이 있을거 같은데, 나는 공부가 적어 위처럼 모든 권한을 다 부여했다.

다시 도커 컨테이너를 올려보자.

1
sudo docker-compose up -d

그리고 로그를 확인해보자.

1
sudo docker-compose logs -f -t --tail="all"

뭔가 에러 없이 넥서스가 실행 되었다고 나온다.

이제 브라우저에서 http://localhost:8081로 접근해보자.

위 처럼 동작을 확인 할 수 있다.

우측 오른쪽의 sign in 을 클릭하면 다음처럼 나온다.

/nexus-data/admin.password 파일을 확인해서 admin의 비밀번호를 확인해 보라고 한다.

예전 버전의 nexus는 기본으로 admin/1234 인데 요즘 버전은 이렇게 나온다.

초기에 생성한 볼륨 폴더인 /home/docker/nexus/nexus-data 폴더로 이동해보자.

admin.password 파일이 있다. 해당 파일을 열어보면 admin 초기 비밀번호가 나온다.

admin/초기비밀번호를 입력하면 새로 생성한 넥서스에 관리자로 로그인 할 수 있다.

로그인에 성공하면 다음처럼 나온다.

새 비밀번호를 입력한다.

그리고 대충 next 버튼을 눌러주면 된다.

4. 이제 관리는 어떻게?

도커 컨테이너의 볼륨을 호스트와 연결했으니, 컨테이너를 지워도 호스트 볼륨이 살아 있으니, 문제 없다.

나중에 백업을 하거나 컨테이너를 다른곳으로 옮겨야 할 경우 /home/docker 폴더를 전체 복사해서 이동시켜 컨테이너를 올리면 작업중엔 넥서스의 상태를 보존할수 있을거 같다.

5. docker compose 명령어 요약

1
2
3
4
5
6
7
8
docker-compose up -d      // 도커컴포즈 컨테이너 생성 및 실행   
docker-compose down // 도커컴포즈 컨테이너 종료 및 삭제

docker-compose start // 도커컴포즈 컨테이너 실행
docker-compose stop // 도커컴포즈 컨테이너 종료

docker-compose ps // 도커컴포즈 프로스스 확인
docker-compsos logs -f -t --tail="all" //도커컴포즈 로그 확인