반응형

Docker 패키지가 Version: 20.10.3-1305 으로 업데이트 되면서 

웹스테이션의 기능이 보다 패키지와 유연하게 연결되도록 UI가 변경되었다고 합니다.

https://www.synology.com/ko-kr/releaseNote/Docker

그 동안 왜 눈치채지 못했지!?

 

도커의 Web Station 포털 활성화(설정되면, 웹 스테이션의 설정환경을 표시한다)

분명, Docker를 외부포트로 연동하기위해 사용하던, 역방향 프록시의 번거로운 설정의 절차를 줄일 수 있는 이점이 있다고 생각됩니다. 

 

많이 활용해 보시기 바라며, 역방향 프록시를 더 편하게 설정할 수 있다는 것 정도로만 이해하시면 됩니다.

 

As-is

- 역방향 프록시 설정 (접속경로/포트 : 내부포트)  >> Docker 내 포트 설정 (아래 포스팅 참고)

https://make1solve.tistory.com/21 

 

Synology NAS / Docker - 2부. (응용편)

목적/목표 Synology Docker 패키지를 이용해 서비스를 구동하는 방법에 대해 알아보도록 하겠습니다. 순서 Synology Docker의 고급 설정 Docker 고급설정의 항목 기능 설명 dockercompose.yml 정보를 이용해 서

make1solve.tistory.com

 

To-be

- Docker(웹 스테이션 포털 활성화 및 외부 포트 설정) >> 웹 스테이션 도메인 이름 포털 설정

 

참고사항으로는 아직은 버전업의 여유를 두고 생각하고 있어서일까 도커를 끄거나, 재설정할 경우에  웹 스테이션에서이 Docker의 상태를 확인못하고 잃어버리는 현상이 있습니다. 그럴때마다 다시 설정해줘야해서 이점은 좀 불편하네요.

반응형
반응형

목적/목표

Synology Docker 패키지를 이용해 서비스를 구동하는 방법에 대해 알아보도록 하겠습니다.

 

순서

  1. Synology Docker의 고급 설정
  2. Docker 고급설정의 항목 기능 설명
  3. dockercompose.yml 정보를 이용해 서비스 구성하는 방법

 

1. Synology Docker의 고급 설정

신규 컨테이너를 생성하면, 해당 Docker의 레지스트리에서 설명된 정의된 환경정보를 고급 설정의 내용에 입력 해야한다. 

레지스트리의 도커 허브 연결페이지 링크
도커허브 페이지의 레드마인 환경설정 정보(Environment Variables)

 

2. Docker 고급설정의 항목 기능 설명

  • 일반설정 :  컨테이너 이름과 컨테이너 권한 및 리소스 사용 정보, 재시작 정보 등을 설정 하는 부분입니다.
  • 볼륨(Volume) : 도커 컨테이너 내부의 파일을 NAS의 특정 폴더로 하기 위해 사용한다. 통상적으로 초기 이미지 외에 변경되는 파일 또는 폴더를 연결합니다. 아래의 이미지는 NAS의 /docker/lxqt 폴더를 컨테이너의 /home/ubuntu로 연결한다는 의미 입니다. 컨테이너 내부에서 작성되거나 액세스 하는 내용은 실제 NAS의 /docker/lxqt 폴더에 저장 됩니다.

  • 포트 설정(Port Mapping) : 실제 서비스가 연결될 서비스 네트워크의 포트 정보로 도커 컨테이너의 외부 접근 네트워크 정보를 설정합니다. 아래의 이미지는 TCP통신으로 로컬 포트 localhost:13100로 접속시, 컨테이너 포트 6080으로 연결한다는 의미 입니다.

  • 링크(Link) : 해당 컨테이너와 연결되는 Database와 같은 컨테이너의 링크정보를 입력합니다. 컨테이너가 연결되면, 별칭 설정을 이용해 컨테이너와 컨테이너 끼리의 연결성이 좋아집니다. 아래는 컨테이너 링크를 두어 연결하는 것에 대한 샘플 구성입니다. (실제는 연결되지 않음)

  • 환경(Environment Variables) : 서비스 구동에 필요한, DB 연결정보 및 관리자 정보, 서비스 구동에 필요한 환경 정보입니다. 이를테면 DB 연결된 정보 등을 입력합니다. 아래의 이미지는 레드마인의 DB커넥션 정보를 입력한 부분이며, REDMINE_DB_MYSQL의 값이 db 인 부분은 위의 링크에서 DB의 컨테이너의 별칭을 db로 하고 있기 때문입니다.

  • 환경 > 실행 명령 : 최초 도커 컨테이너 생성시 실행되는 명령입니다. 특정한 도커 이미지의 경우, 초기 설정이 필요한 경우 요구되기도 합니다.

 

3. dockercompose.yml 정보를 이용해 서비스 구성하는 방법

NextCloud 설치

NextCloud 의 dockercompose.yml를 이용해 구성해보도록 하겠습니다.

① service : 밑의 image: 를 보면 mariadb와 nextcloud 이미지가 필요한 것을 확인할 수 있습니다. 

version: '2'

volumes:
  nextcloud:
  db:

services:
  db:
    image: mariadb
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=
      - MYSQL_PASSWORD=
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
    image: nextcloud
    restart: always
    ports:
      - 8080:80
    links:
      - db
    volumes:
      - nextcloud:/var/www/html
    environment:
      - MYSQL_PASSWORD=
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db

② 레지스트리에서 mariadb, nextcloud 의 이미지를 다운받습니다. (lastest로 다운받습니다.)

③ 이미지에서 각 이미지가 다운되면, 선택 후 실행합니다.

④ Mariadb 이미지를 실행하고, 일반 설정의 내용중 고급설정을 클릭하고, 입력하는 상세정보는 dockercompose.yml 파일을 참고합니다. 

 

# Mariadb 고급설정

  • 볼륨 : yml 파일의 13번째 행을 참고하여, NAS에 위치할 폴더를 선택(생성)해주고, 마운트 경로를 입력 합니다.

 

  • 환경 : yml 파일의 15~18번 행을 참고로 하여 입력해줍니다.

  • 환경 > 실행 명령 추가 : 명령어의 시작은 회색글씨로 표기된 부분을 참고 합니다. (이미지에 따라 다름) mysqld 로 시작하는 명령어와 yml 파일의 11번 행의 command 내용을 추가합니다. 명령어 입력 형식 오류가 발생시에는 앞뒤로 감싸주어 mysqld "--transaction....ROW"와 같이 입력해주세요.

명령어는 mysqld 로 시작되어야 합니다.
yml의 command 내용을 입력합니다.

 

⑤ mariadb 컨테이너 생성에 최종적으로 내용을 확인하고, 적용을 클릭합니다.

 

⑥ nextcloud 이미지를 실행하고, 일반 설정의 내용중 고급설정을 클릭하고, 입력하는 상세정보는 dockercompose.yml 파일을 참고합니다. 

 

# Nextcloud 고급설정

  • 링크 : yml 파일의 00째 행을 참고하여, 위에서 생성했던 mariadb를 선택하고 db라는 별칭을 입력합니다. 
    (추후 환경 설정에서 db 라는 별칭을 사용합니다.)

  • 포트설정 : yml 파일의 24번째 행을 참고하여, 외부로 연결되는 포트를 설정합니다.
    이후 8000번 포트로 Nextcloud 페이지가 연결됩니다.

  • 볼륨 : yml 파일의 27번째 행을 참고하여, NAS에 위치할 폴더를 선택(생성)해주고, 마운트 경로를 입력 합니다.

  • 환경 : yml 파일의 30~33번 행을 참고로 하여 입력해줍니다. db 연결 정보로 mariadb에서 설정한 정보와 동일하게 입력해 줍니다. 

⑦ nextcloud 컨테이너 생성에 최종적으로 내용을 확인하고, 적용을 클릭합니다.

※ 이때, 컨테이너를 실행하게되면, 링크로 연결된 mariadb 컨테이너를 자동으로 실행합니다.

⑨ http://(NAS의 IP):8000으로 접속해 웹페이지를 확인합니다.

 

트러블 슈팅

  • Nextcloud 컨테이너가 다운될 경우, 버전을 낮추어서 이미지를 다운 받으시기 바랍니다.
    • AH00141 오류발생의 경우 NAS 커널 또는 php버전 및 커널 이슈로 동작이 안되는 경우가 있는 부분으로 저같은 경우 21.0.0 으로 버전을 낮추어서 설정하니 정상 구동이 가능했습니다.
  • Mariadb 컨테이너가 다운될 경우, 커멘드를 지우고 실행해봐 주시기 바랍니다. 
  • 웹 페이지 접속에 문제가 있는 경우 역방향 프록시 등을 이용해 설정이 필요 할 수 있습니다.

 

 

이상입니다.

반응형
반응형

안녕하세요. Synology NAS가 버전업이 되면서 더이상 지원해 주지 않는 패키지들이 많아지고 있는데요. 오늘은 그런 패키지들을 설치하고, 운영할 수 있는 Docker 기능에 대해 알아보도록 하겠습니다. 

 

목적/목표

시놀로지 Docker 패키지에 대해 소개하고, 특징과 활용 방법 등을 소개합니다.

 

순서

  1. Synology Docker란?
  2. Synology Docker의 장점
  3. 메뉴(용어) 소개
  4. 기본적인 사용 방법

 

1. Synology Docker란?

Docker의 개요적인 설명을 하자면 복잡하기 때문에 Synology NAS 기준으로 쉽고 간략히 설명하자면, 시놀로지에서 지원하지 않는 응용패키지(레드마인, Gitlab, GLPI 등)를 구동할 수 있도록 해주는 GUI기반 응용 서비스입니다.  
다만, Docker의 기본적인 사용법 및 구성, 용어, 개념 등을 이해해 두시면 해당 응용 패키지 사용에 도움이 될 것입니다.

 

시놀로지의 지식센터도 이용해서 참고하세요.

https://kb.synology.com/ko-kr/DSM/help/Docker/docker_container?version=6

2. Synology Docker의 장점

  • GUI환경 - GUI라 편리합니다. 쉽게 파악하고, 관리할 수 있습니다.
  • 쉬운 이용/백업 - 구성을 쉽게 백업하거나, 복제할 수 있고, Hyperbackup 등의 패키지들을 통해서 백업이 가능합니다.
  • 쉬운 명령 처리 / 복사 - 클릭으로 명령을 처리하거나, 터미널에 접속하여 명령을 처리하고, 로그 확인이 쉽습니다.
  • 쉬운 시스템 모니터링 - 모든 Docker들의 자원 사용량을 확인 할 수 있습니다.
  • 역방향 프록시/백업 등 외부 패키지 연계 - Synology에서 제공하는 역방향 프록시를 이용하여 https / 인증서 등을 연결 할 수 있습니다.

 

3. 메뉴(용어) 소개

* 레지스트리 - 리포지토리(저장소) 입니다. 필요한 서비스를 검색하여, 이미지를 다운로드 할 수 있습니다. (Docker Hub)

* 이미지 - 리포지토리에서 다운받은 가상 시스템의 이미지가 저장(다운로드)되는 곳입니다. 이미지를 실행하면, 컨테이너가 생성됩니다.

* 컨테이너 - 내가 사용할 이미지를 저장하고 관리하기 위한 메뉴로, 실제로 사용되는 가상 시스템이 이곳에 저장됩니다. 서비스 응용프로그램의 운영체제에 대한 설정을 하거나, 관리하기 위해 이용합니다.

* 네트워크 - 가상 시스템 내의 네트워크를 설정하기 위한 메뉴 입니다.

 

4. 기본적인 사용방법

1. 레지스트리 메뉴를 크릭해 이미지를 검색

2. 검색된 이미지를 더블클릭해 다운로드(버전을 선택) : =Build 명령어에 해당

3. 다운이 완료된 이미지를 실행(컨테이너로 생성) : = run 명령어에 해당

   * 고급설정을 통해 환경설정의 세부 내용을 입력

 

 

2부에서는

통상적으로 커맨드 기반으로 Docker를 운영하기 때문에, 환경 구성에 어려움이 많을 것이라 예상합니다.

다음 포스트 에서는 docker command / docker-compose.yml 파일을 보고 어떻게 고급설정을 구성 할 수 있는지에 대해 알아보도록 하겠습니다.

 

반응형

+ Recent posts