Container Station 3에서 사용자 지정 앱 템플릿을 어떻게 구성하고 배포합니까?


최신 업데이트일: 2023-03-27

Container Station 앱 템플릿을 이용하면 사전 구성된 컨테이너를 QNAP 환경에 배포할 수 있습니다. 기본적으로 Container StationQNAP 검증 템플릿 모음을 제공하지만, 특정 필요를 충족하기 위해 사용자 지정 앱 템플릿을 더 추가할 수 있습니다. 이러한 사용자 지정 앱 템플릿을 직접 QNAP 장치나 외부 웹 서버에서 호스팅할 수 있습니다.

이 튜토리얼에서는 QNAP 장치에서 사용자 지정 앱 템플릿을 호스팅하는 두 가지 방법과 이러한 사용자 지정 앱 템플릿에 액세스하도록 Container Station을 구성하는 방법을 설명합니다.

사용자 지정 앱 템플릿 파일 만들기

첫 번째 단계는 사용자 지정 앱 템플릿 파일을 만드는 것입니다. 기본적으로 Container StationQNAP 장치에서 올바로 작동하는 것으로 검증된 컨테이너 목록을 제공합니다. 여기서 QNAP 검증 템플릿을 다운로드해 수정하거나 새로운 파일을 직접 만들 수 있습니다.

참고:

어떤 텍스트 편집기에서든 템플릿 파일을 수정할 수 있습니다.

앱 템플릿 형식

앱 템플릿 정의는 JSON에서 작성됩니다. 유효한 템플릿은 어레이와 하나 이상의 컨테이너 템플릿 요소로 구성됩니다. 각 컨테이너 템플릿 요소는 필수 또는 선택적인 데이터 필드를 포함한 JSON 개체입니다. 형식은 다음 예시와 유사해야 합니다.

{
  “templates”: [
    {
      // template1
    },
    {
      // template2
    },
    ...
  ]
}

JSON 요소 형식

유형

특성

설명

설명

이 템플릿의 컨테이너 유형(Docker 또는 LXD).

중요

필수

형식

정수

허용되는 값

  • 1: Docker 컨테이너에 사용됩니다.

  • 10: LXD 컨테이너에 사용됩니다.

제목

특성

설명

설명

템플릿의 제목.

중요

필수

형식

문자열

허용되는 값

모든 문자열 값

sub_title

특성

설명

설명

템플릿 버전에 대한 정보.

중요

필수

형식

문자열

허용되는 값

모든 문자열 값

설명

특성

설명

설명

템플릿에 대한 정보를 제공하는 데 사용되는 설명.

중요

필수

형식

문자열

허용되는 값

모든 문자열 값

로고

특성

설명

설명

템플릿의 로고 위치.

중요

선택 사항

형식

문자열

허용되는 값

사용자 지정 앱 템플릿이 호스팅되는 네트워크 도메인에 관련된 유효 URL 또는 경로.

위치

특성

설명

설명

템플릿 URL. 템플릿의 소개 웹페이지가 될 수 있습니다.

중요

선택 사항

형식

문자열

허용되는 값

유효한 URL

플랫폼

특성

설명

설명

지원되는 플랫폼. 유효한 값을 포함해야 합니다.

중요

필수

형식

문자열

허용되는 값

  • linux: 모든 플랫폼

  • linux/amd64: 64비트 x86

  • linux/arm64: 64비트 ARM

  • linux/arm: 32비트 ARM

{
  "platform": "linux/amd64"
}

이미지

특성

설명

설명

템플릿과 관련된 이미지.

중요

필수

형식

문자열

허용되는 값

유효한 이미지

{
  "image": "nginx:latest"
}

명령

특성

설명

설명

Docker 컨테이너에서 실행할 명령. 지정되지 않은 경우, 컨테이너가 Dockerfile에 지정된 기본 명령을 사용합니다.

중요

선택 사항

형식

문자열

허용되는 값

모든 문자열 값

{
  "command": "nginx -g 'daemon off;'"
}

진입점

특성

설명

설명

Docker 컨테이너를 시작하기 위한 진입점. 지정되지 않은 경우, 컨테이너가 Dockerfile에 지정된 기본 진입점을 사용합니다.

중요

선택 사항

형식

문자열

허용되는 값

모든 문자열 값

{
  "entrypoint": "/docker-entrypoint.sh"
}

env

특성

설명

설명

템플릿에 필요한 환경 변수를 설명하는 JSON 어레이. 어레이의 각 요소는 유효한 JSON 개체여야 합니다.

중요

선택 사항

형식

어레이

허용되는 값

유효한 JSON 어레이

어레이 형식

  • 이름: (필수) 컨테이너 이미지에 지원되는 환경 변수의 이름.

  • : (필수) 변수와 관련된 값.

{
  "env": [
    { "name": "ENV_VAR1", "value": "" },
    { "name": "ENV_VAR2", "value": "value2" }
  ]
}

라벨

특성

설명

설명

템플릿과 관련된 라벨을 설명하는 JSON 어레이. 어레이의 각 요소는 유효한 JSON 개체여야 합니다.

중요

선택 사항

형식

어레이

허용되는 값

유효한 JSON 어레이

어레이 형식

  • 이름: (필수) 라벨 키의 이름.

  • : (필수) 키와 관련된 값.

{
  "labels": [
    { "name": "com.example.vendor", "value": "Acme Incorporated" },
    { "name": "com.example.label-with-value", "value": "foo" },
    { "name": "version", "value": "1.0" }
  ]
}

볼륨

특성

설명

설명

템플릿과 관련된 볼륨을 설명하는 JSON 어레이. 어레이의 각 요소는 필요한 컨테이너 속성을 갖춘 유효한 JSON 개체여야 합니다.

중요

선택 사항

형식

어레이

허용되는 값

유효한 JSON 어레이

어레이 형식

  • 컨테이너: (필수) 컨테이너 경로.

  • 볼륨: (옵션) Docker 볼륨의 이름.

  • 바인딩: (Docker 컨테이너의 경우 옵션, LXD 컨테이너의 경우 필수) 바인딩 마운트의 소스로 사용되는 호스트 경로.

  • readonly: (옵션) 으로 설정된 경우, 볼륨이 읽기 전용 모드로 마운트됩니다.

{
  "volumes": [
    {
      "container": "/usr/share/nginx/html"
    },
    {
      "container": "/usr/share/nginx/html"
      "volume": "nginx-vol"
    },
    {
      "container": "/usr/share/nginx/html/my-templates.json",
      "bind": "/Container/my-templates.json  ",
      "readonly": true
    }
  ]
}

포트

특성

설명

설명

템플릿과 관련된 포트를 설명하는 JSON 어레이. 어레이의 각 요소는 컨테이너를 비롯하여 프로토콜에서 포트 번호를 지정하는 유효한 JSON 문자열이어야 합니다. 선택적으로 호스트에 매핑된 포트를 정의하기 위해 포트 번호와 콜론(예: 8080:)을 사용해 접두어가 지정될 수 있습니다. 호스트 포트가 지정되지 않은 경우, 컨테이너가 시작할 때 Docker가 자동으로 포트를 할당합니다.

중요

선택 사항

형식

어레이

허용되는 값

유효한 JSON 어레이

{
  "ports": ["8080:80/tcp", "443/tcp", "80/udp"]
}

호스트 이름

특성

설명

설명

컨테이너의 호스트 이름. 컨테이너를 손쉽게 식별하는 데 도움이 될 수 있습니다.

중요

선택 사항

형식

문자열

허용되는 값

모든 문자열 값

{
  "hostname": "myContainerHostName"
}

restart_policy

특성

설명

설명

Docker 컨테이너와 관련된 다시 시작 정책. 지정되지 않은 경우, 기본적으로 unless-stopped으로 설정됩니다.

중요

선택 사항

형식

문자열

허용되는 값

  • 아니요: 컨테이너를 자동으로 다시 시작하지 않습니다.

  • 실패 시: 이 아닌 종료 코드와 같은 오류로 인해 컨테이너가 종료된 경우, 컨테이너를 다시 시작합니다.

  • 항상: 항상 컨테이너가 중지하면 다시 시작합니다. 수동으로 중지된 경우, Container Station이 다시 시작하거나 수동으로 컨테이너를 다시 시작할 때만 다시 시작합니다.

  • 중지되지 않은 경우에만항상과 유사하게 컨테이너가 수동으로 중지된 경우를 제외하고, Container Station이 다시 시작한 후에도 다시 시작하지 않습니다.

{
  "restart_policy": "unless-stopped"
}

auto_start_policy

특성

설명

설명

LXD 컨테이너와 관련된 자동 시작 정책. 지정되지 않은 경우, 기본적으로 retain으로 설정됩니다.

중요

선택 사항

형식

문자열

허용되는 값

  • 아니요: 컨테이너를 자동으로 다시 시작하지 않습니다.

  • 항상: 항상 컨테이너가 중지하면 다시 시작합니다. 수동으로 중지된 경우, Container Station이 다시 시작하거나 수동으로 컨테이너를 다시 시작할 때만 다시 시작합니다.

  • 유지항상과 유사하게 컨테이너가 수동으로 중지된 경우를 제외하고, Container Station이 다시 시작한 후에도 다시 시작하지 않습니다.

{
  "auto_start_policy": "retain"
}

양방향

특성

설명

설명

Docker 컨테이너를 전경 모드에서 시작할지를 제어합니다. 지정되지 않은 경우, 기본적으로 true로 설정됩니다.

중요

선택 사항

형식

부울

허용되는 값

  • : Docker 컨테이너가 전경 모드에서 시작합니다.

  • 거짓: 컨테이너가 분리 모드에서 시작합니다.

{
  "interactive": false
}

tty

특성

설명

설명

Docker 컨테이너에 pseudo-TTY를 할당할지를 제어합니다. 지정되지 않은 경우, 기본적으로 true로 설정됩니다.

중요

선택 사항

형식

부울

허용되는 값

  • : pseudo-TTY를 Docker 컨테이너에 할당

  • 거짓: pseudo-TTY를 Docker 컨테이너에 할당하지 않습니다.

{
  "tty": false
}

권한

특성

설명

설명

컨테이너를 권한 모드에서 시작할지를 제어합니다. 지정되지 않은 경우, 기본적으로 false로 설정됩니다.

중요

선택 사항

형식

부울

허용되는 값

  • : 컨테이너가 권한 모드에서 시작합니다.

  • 거짓: 컨테이너가 권한 모드에서 시작하지 않습니다.

{
  "privileged": true
}

NGINX 컨테이너에 사용자 지정 앱 템플릿 호스팅

다음으로 사용자 지정 앱 템플릿을 Container Station에서 사용할 수 있게 설정해야 합니다. 이 항목에서는 Container Station에서 실행 중인 NGINX 컨테이너에서 템플릿 파일을 호스팅하는 프로세스를 설명합니다.

또는 QNAP 웹 서버에서도 앱 템플릿 파일을 호스팅할 수 있습니다. QNAP 웹 서버에서 사용자 지정 앱 템플릿 호스팅을 참조하십시오.

중요:

사용자 지정 앱 템플릿 JSON 파일을 업데이트한 후, 변경 내용을 컨테이너 내에 반영하려면 NGINX 컨테이너를 다시 시작해야 합니다.

  1. 사용자 지정 앱 템플릿 파일을 업로드합니다.
    1. File Station을 엽니다.
    2. 장치에서 폴더로 이동합니다.
    3. 앱 템플릿 파일을 업로드합니다.
    4. 나중에 사용할 수 있도록 템플릿 파일의 위치를 적어둡니다.
  2. Container Station을 엽니다.
  3. 상단 패널에서 탐색 옆에 있는 화살표를 클릭합니다.
  4. 컨테이너 만들기를 선택합니다.

    컨테이너 만들기 창이 열립니다.

  5. 이미지를 선택합니다.

    설정

    작업

    모드

    기본 모드를 선택합니다.

    레지스트리

    Docker 허브를 선택합니다.

    이미지

    nginx를 입력합니다.

  6. 다음을 클릭합니다.
  7. 선택 사항: 컨테이너 설정을 구성합니다.

    설정

    작업

    이름

    컨테이너의 이름을 입력합니다. 예: nginx-my-template.

    자동 시작 정책

    중지되지 않은 경우에만을 선택합니다.

    이 옵션을 선택하면 사용자가 수동으로 중지하기 전까지 컨테이너가 항상 다시 시작합니다.

    네트워크 구성

    네트워크 환경에 맞게 설정을 구성합니다.

    이 튜토리얼에서는 기본 네트워크 모드를 사용하고 호스트의 포트 30080을 통해 트래픽을 컨테이너로 전송합니다.

    참고:

    호스트 필드가 지정되지 않은 경우, 컨테이너가 다시 시작한 후 게시된 포트가 변경될 수 있습니다. 그러면 앱 템플릿이 Container Station에 액세스할 수 없게 됩니다.

  8. 선택 사항: 고급 설정을 수정합니다.
    1. 고급 설정을 클릭합니다.

      고급 설정 창이 나타납니다.

    2. 스토리지 탭으로 이동합니다.
    3. 볼륨 추가 옆에 있는 화살표를 클릭합니다.
    4. 마운트 호스트 경로 바인딩을 선택합니다.

      새로운 스토리지 행이 추가됩니다.

    5. 을 클릭합니다.

      호스트 경로 선택 창이 열립니다.

    6. 앞서 업로드한 앱 템플릿 파일을 찾아서 선택합니다.
    7. 적용을 클릭합니다.
    8. 컨테이너 필드에 /usr/share/nginx/html/TEMPLATE_FILENAME를 입력합니다.
      참고:

      TEMPLATE_FILENAME을 템플릿 파일의 이름으로 대체하십시오. 예: /usr/share/nginx/html/my-templates.json

    9. RO를 선택합니다.
    10. 적용을 클릭합니다.

      Container Station이 스토리지 설정을 저장합니다.

  9. 다음을 클릭합니다.
  10. 컨테이너 설정을 검토하고 마침을 클릭합니다.

앱 템플릿 파일을 사용할 수 있게 됩니다.

참고:

웹 브라우저에 http://HOST_IP_ADDRESS:PUBLISHED_HOST_PORT/TEMPLATE_FILENAME을 입력해서 앱 템플릿 파일에 액세스할 수 있는지를 확인할 수 있습니다. 예: http://192.168.1.1:30080/my-templates.json.

QNAP 웹 서버에서 사용자 지정 앱 템플릿 호스팅

다음으로 사용자 지정 앱 템플릿을 Container Station에서 사용할 수 있게 설정해야 합니다. 이 항목에서는 QNAP 웹 서버에서 템플릿 파일을 호스팅하는 프로세스를 설명합니다.

또는 Container Station 내에서 직접 NGINX 컨테이너에 앱 템플릿 파일을 호스팅할 수도 있습니다. NGINX 컨테이너에 사용자 지정 앱 템플릿 호스팅을 참조하십시오.

  1. QTS 웹 서버를 활성화합니다.
    1. 시스템에 관리자로 로그인합니다.
    2. 제어판 > 애플리케이션 > 웹 서버 > 웹 서버로 이동합니다.
    3. 웹 서버 사용을 선택합니다.
    4. 선택 사항: 웹 서버 설정을 구성합니다.
    5. 적용을 클릭합니다.

      시스템이 웹 서버를 활성화합니다.

  2. 사용자 지정 앱 템플릿 파일을 업로드합니다.
    1. File Station을 엽니다.
    2. 웹 서버에 대해 생성한 폴더로 이동합니다.
    3. 앱 템플릿 파일을 업로드합니다.

앱 템플릿 파일을 사용할 수 있게 됩니다.

참고:

웹 브라우저에 http://HOST_IP_ADDRESS:WEB_SERVER_PORT/TEMPLATE_FILENAME을 입력해서 앱 템플릿 파일에 액세스할 수 있는지를 확인할 수 있습니다. 예: http://192.168.1.1:80/my-templates.json.

Container Station에 사용자 지정 앱 템플릿 추가

다음 단계는 사용자 지정 앱 템플릿을 Container Station에 추가하는 것입니다. 그러면 Container Station 내에서 애플리케이션 앱 목록을 사용할 수 있게 됩니다.

  1. Container Station을 시작합니다.
  2. 메뉴에서 기본 설정을 클릭합니다.
  3. 앱 템플릿으로 이동합니다.
  4. 사용자 지정 템플릿 활성화를 선택합니다.
  5. 사용자 지정 앱 템플릿의 URL을 지정합니다.
    참고:

    구성에 따라 URL에 구성된 웹 서버의 IP 주소와 포트 번호가 포함되어야 할 수도 있습니다. 예: http://192.168.1.1:30080/my-template-file.json.

  6. 적용을 클릭합니다.

Container Station이 사용자 지정 앱 템플릿을 저장합니다.

사용자 지정 앱 템플릿 배포

마지막 단계는 이전 단계에서 추가한 사용자 지정 앱 템플릿 파일에서 컨테이너를 배포하는 것입니다.

  1. 메뉴에서 앱 템플릿으로 이동합니다.
  2. 사용자 지정 템플릿 탭으로 이동합니다.
  3. 템플릿을 식별합니다.
  4. 배포를 클릭합니다.

컨테이너 배포 마법사가 열립니다. Docker 컨테이너 만들기를 참조하십시오.

이 기사가 도움이 되었습니까?

60% 의 사용자들이 도움이 된다고 생각할 것입니다.
피드백을 주셔서 감사드립니다.

이 기사가 어떻게 개선될 수 있을지 말해 주십시오.

추가 피드백을 제공하려면 아래에 포함하십시오.

사양 선택

      더 보기 적게 보기

      다른 국가/지역 사이트:

      open menu
      back to top