시놀로지에 Docker Private Registry 올리기

U2 PIA
4 min readFeb 11, 2020

--

TL;DR =원칙적으로 https를 사용해야 하나, 인증서 설치 등의 과정이 번잡하고 내부에서만 사용하는 것을 굳이 그렇게까지 해야 하나 싶어 http만으로 동작하게 하였다.

I. Docker Private Registry 설치

  1. Docker Registry 이미지를 설치하자.

2. 이미지에서 Registry를 선택하고, ‘고급설정’에서 포트 설정으로 들어가자.

3. 시놀로지 웹 UI가 기본적으로 5000 포트를 사용하니, 왼쪽의 ‘로컬 포트’를 외부에 노출시키고 싶은 포트(나의 경우 5050)로 선택한 후, Container를 구동시켜 놓는다.

컨테이너 포트 설정 정보를 보면, 로컬포트는 5050으로 나온다. 컨테이너 포트는 5000으로 그대로 두어야 한다.

II. Docker Private Registry 설정

  1. 터미널 작업이 필요하기 때문에 SSH를 Enable 하자.

2. 터미널에 SSH로 로그인을 한 후, /usr/syno/etc/packages/Docker/dockerd.json 파일에 아래와 같은 내용을 넣어주자. 참고로, 나의 경우 시놀로지 장비에서 사용하는 Docker registry 의 주소는 ‘192.168.1.16:5050’으로 설정했다.

{
"data-root" : "/var/packages/Docker/target/docker",
"log-driver" : "db",
"registry-mirrors" : [],
"insecure-registries" : ["192.168.1.16:5050"]
}

3. 패키지센터->Docker 를 중단시킨 이후, 다시 재실행한다.

III. Private Registry 에 image 올리기

Docker image가 위치한 장치(나의 경우, ubuntu) 에서 Private Registry로 이미지를 올려보자(push)

$ sudo docker tag ixs:latest 192.168.1.16:5050/ixs
$ sudo docker push 192.168.1.16:5050/ixs

아마 100% https, http 오류가 뜰거다. 그럼 /etc/docker/daemon.json 파일을 열어 아래와 같이 ‘insecure-registries’ 내용을 추가하자.

{
"exec-opts" : ["native.cgroupdriver=systemd"],
"insecure-registries":["192.168.1.16:5050"]
}

다시 push해 보면 주루룩 올라간다.

이후 시놀로지 웹페이지의 Docker를 실행시켜 보면, 아래와 같이 이미지가 잘 올라왔음을 확인할 수 있다.

이후, 해당 이미지를 선택하여 실행함으로써 Container를 생성 시킬 수 있다. 고급설정에서 상세한 정보(주로 docker-compose.yml 에 기재되는 내용)를 설정할 수 있다.

Good Luck!

--

--