Jak konfigurować i wdrażać niestandardowe szablony aplikacji w aplikacji Container Station 3?


Data ostatniej modyfikacji: 2023-03-27

Szablony aplikacji Container Station umożliwiają wdrażanie wstępnie skonfigurowanych kontenerów w środowisku QNAP. Domyślnie aplikacja Container Station udostępnia kolekcję szablonów zweryfikowanych przez QNAP, ale możesz dodać kolejne niestandardowe szablony aplikacji, aby zaspokoić swoje konkretne potrzeby. Te niestandardowe szablony aplikacji możesz hostować bezpośrednio na urządzeniu QNAP lub na zewnętrznym serwerze WWW.

W tym samouczku wyjaśniono dwie metody hostowania niestandardowych szablonów aplikacji na urządzeniu QNAP oraz sposób konfigurowania aplikacji Container Station w celu uzyskiwania dostępu do tych niestandardowych szablonów aplikacji.

Tworzenie pliku niestandardowego szablonu aplikacji

Pierwszym krokiem jest utworzenie pliku niestandardowego szablonu aplikacji. Domyślnie aplikacja Container Station udostępnia listę kontenerów, które są zweryfikowane pod kątem prawidłowego działania z Twoim urządzeniem QNAP. Szablony zweryfikowane przez QNAP można pobrać i zmodyfikować tutaj lub samodzielnie utworzyć nowy plik.

Uwaga:

Plik szablonu możesz zmodyfikować w dowolnym edytorze tekstu.

Format szablonu aplikacji

Definicje szablonów aplikacji są zapisane w pliku JSON. Prawidłowe szablony składają się z tablicy i co najmniej jednego elementu szablonu kontenera. Każdy element szablonu kontenera jest obiektem JSON, który obejmuje dowolne obowiązkowe lub opcjonalne pola danych. Format powinien być podobny do poniższego przykładu:

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

Format elementu JSON

type

Atrybut

Opis

Opis

Typ kontenera (Docker lub LXD) do tego szablonu.

Ważność

Wymagane

Format

Liczba całkowita

Akceptowane wartości

  • 1: kontenery Docker.

  • 10: kontenery LXD.

title

Atrybut

Opis

Opis

Tytuł szablonu.

Ważność

Wymagane

Format

Ciąg

Akceptowane wartości

Dowolny ciąg

sub_title

Atrybut

Opis

Opis

Informacje o wersji szablonu.

Ważność

Wymagane

Format

Ciąg

Akceptowane wartości

Dowolny ciąg

description

Atrybut

Opis

Opis

Opis przeznaczenia szablonu.

Ważność

Wymagane

Format

Ciąg

Akceptowane wartości

Dowolny ciąg

logo

Atrybut

Opis

Opis

Lokalizacja logo szablonu.

Ważność

Opcjonalne

Format

Ciąg

Akceptowane wartości

Dowolny prawidłowy adres URL lub ścieżka zawierająca relację do domeny sieciowej, w której jest hostowany niestandardowy szablon aplikacji.

location

Atrybut

Opis

Opis

Adres URL szablonu. Może prowadzić do strony zawierającej wprowadzenie do szablonu.

Ważność

Opcjonalne

Format

Ciąg

Akceptowane wartości

Dowolny prawidłowy adres URL

platform

Atrybut

Opis

Opis

Obsługiwana platforma. Musi zawierać prawidłową wartość.

Ważność

Wymagane

Format

Ciąg

Akceptowane wartości

  • linux: dowolna platforma

  • linux/amd64: 64-bitowa architektura x86

  • linux/arm64: 64-bitowa architektura ARM

  • linux/arm: 32-bitowa architektura ARM

Przykład

{
  "platform": "linux/amd64"
}

image

Atrybut

Opis

Opis

Obraz powiązany z szablonem.

Ważność

Wymagane

Format

Ciąg

Akceptowane wartości

Dowolny prawidłowy obraz

Przykład

{
  "image": "nginx:latest"
}

command

Atrybut

Opis

Opis

Polecenie uruchamiane w kontenerze Docker. Jeśli nie zostanie podane, zostanie użyte domyślne polecenie określone w pliku Dockerfile.

Ważność

Opcjonalne

Format

Ciąg

Akceptowane wartości

Dowolny ciąg

Przykład

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

entrypoint

Atrybut

Opis

Opis

Punkt wejścia umożliwiający uruchomienie kontenera Docker. Jeśli nie zostanie podany, zostanie użyty domyślny punkt wejścia określony w pliku Dockerfile.

Ważność

Opcjonalne

Format

Ciąg

Akceptowane wartości

Dowolny ciąg

Przykład

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

env

Atrybut

Opis

Opis

Tablica JSON z opisem zmiennych środowiskowych wymaganych przez szablon. Poszczególne elementy tablicy muszą być prawidłowymi obiektami JSON.

Ważność

Opcjonalne

Format

Tablica

Akceptowane wartości

Prawidłowa tablica JSON

Format tablicy

  • name: (Wymagane) Nazwa zmiennej środowiskowej obsługiwanej w obrazie kontenera.

  • value: (Wymagane) Wartość powiązana ze zmienną.

Przykład

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

labels

Atrybut

Opis

Opis

Tablica JSON z opisem etykiet skojarzonych z szablonem. Poszczególne elementy tablicy muszą być prawidłowymi obiektami JSON.

Ważność

Opcjonalne

Format

Tablica

Akceptowane wartości

Prawidłowa tablica JSON

Format tablicy

  • name: (Wymagane) Nazwa klucza etykiety.

  • value: (Wymagane) Wartość powiązana z kluczem.

Przykład

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

volumes

Atrybut

Opis

Opis

Tablica JSON z opisem woluminów skojarzonych z szablonem. Poszczególne elementy tablicy muszą być prawidłowymi obiektami JSON z wymaganą właściwością kontenera.

Ważność

Opcjonalne

Format

Tablica

Akceptowane wartości

Prawidłowa tablica JSON

Format tablicy

  • container: (Wymagane) Ścieżka kontenera.

  • volume: (Opcjonalne) Nazwa woluminu Docker.

  • bind: (Opcjonalne w przypadku kontenerów Docker, wymagane w przypadku kontenerów LXD) Ścieżka na hoście służąca jako źródło instalacji powiązania.

  • readonly: (Opcjonalne) W przypadku ustawienia wartościtruewolumin jest montowany w trybie tylko do odczytu.

Przykład

{
  "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
    }
  ]
}

ports

Atrybut

Opis

Opis

Tablica JSON z opisem portów udostępnianych przez szablon. Poszczególne elementy tablicy muszą być prawidłowymi ciągami JSON określającymi numer portu w kontenerze oraz protokół. Opcjonalnie można dodać prefiks zawierający numer portu i dwukropek (na przykład 8080:) w celu zdefiniowania mapowanego portu na hoście. Jeśli port hosta nie zostanie podany, host Docker automatycznie przypisze port podczas uruchamiania kontenera.

Ważność

Opcjonalne

Format

Tablica

Akceptowane wartości

Prawidłowa tablica JSON

Przykład

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

hostname

Atrybut

Opis

Opis

Nazwa hosta kontenera. Ułatwia identyfikację kontenera.

Ważność

Opcjonalne

Format

Ciąg

Akceptowane wartości

Dowolny ciąg

Przykład

{
  "hostname": "myContainerHostName"
}

restart_policy

Atrybut

Opis

Opis

Zasady ponownego uruchamiania skojarzone z kontenerem Docker. Jeśli nie zostaną podane, wartość domyślna tounless-stopped.

Ważność

Opcjonalne

Format

Ciąg

Akceptowane wartości

  • no: kontener nie jest automatycznie uruchamiany ponownie.

  • on-failure: uruchom kontener ponownie, jeśli zakończy pracę z powodu błędów, np. niezerowego kodu zakończenia.

  • always: zawsze uruchamiaj kontener ponownie, gdy zostanie zatrzymany. W przypadku zatrzymania ręcznego kontener zostanie uruchomiony ponownie dopiero po ponownym uruchomieniu aplikacji Container Station lub w wyniku ręcznego ponownego uruchomienia.

  • unless-stopped: działanie zbliżone do opcji Always z tą różnicą, że po ręcznym zatrzymaniu kontenera nie zostanie on ponownie uruchomiony nawet po ponownym uruchomieniu aplikacji Container Station.

Przykład

{
  "restart_policy": "unless-stopped"
}

auto_start_policy

Atrybut

Opis

Opis

Zasady automatycznego uruchamiania skojarzone z kontenerem LXD. Jeśli nie zostaną podane, wartość domyślna toretain.

Ważność

Opcjonalne

Format

Ciąg

Akceptowane wartości

  • no: kontener nie jest automatycznie uruchamiany ponownie.

  • always: zawsze uruchamiaj kontener ponownie, gdy zostanie zatrzymany. W przypadku zatrzymania ręcznego kontener zostanie uruchomiony ponownie dopiero po ponownym uruchomieniu aplikacji Container Station lub w wyniku ręcznego ponownego uruchomienia.

  • retain: działanie zbliżone do opcji Always z tą różnicą, że po ręcznym zatrzymaniu kontenera nie zostanie on ponownie uruchomiony nawet po ponownym uruchomieniu aplikacji Container Station.

Przykład

{
  "auto_start_policy": "retain"
}

interactive

Atrybut

Opis

Opis

Określa, czy kontener Docker ma być uruchamiany w trybie pierwszego planu. W przypadku niepodania wartość domyślna totrue.

Ważność

Opcjonalne

Format

Wartość logiczna

Akceptowane wartości

  • true: kontener Docker jest uruchamiany w trybie pierwszego planu.

  • false: kontener jest uruchamiany w trybie odłączonym.

Przykład

{
  "interactive": false
}

tty

Atrybut

Opis

Opis

Określa, czy kontenerowi Docker przypisać proces pseudo-TTY. W przypadku niepodania wartość domyślna totrue.

Ważność

Opcjonalne

Format

Wartość logiczna

Akceptowane wartości

  • true: proces pseudo-TTY jest przypisywany do kontenera Docker

  • false: proces pseudo-TTY nie jest przypisywany do kontenera Docker.

Przykład

{
  "tty": false
}

privileged

Atrybut

Opis

Opis

Określa, czy kontener ma być uruchamiany w trybie uprzywilejowanym. W przypadku niepodania wartość domyślna tofalse.

Ważność

Opcjonalne

Format

Wartość logiczna

Akceptowane wartości

  • true: kontener jest uruchamiany w trybie uprzywilejowanym.

  • false: kontener nie jest uruchamiany w trybie uprzywilejowanym.

Przykład

{
  "privileged": true
}

Hostowanie niestandardowego szablonu aplikacji w kontenerze NGINX

Następnie należy udostępnić niestandardowy szablon aplikacji dla aplikacji Container Station. W tym temacie wyjaśniono proces hostowania pliku szablonu w kontenerze NGINX, który jest także uruchomiony w aplikacji Container Station.

Ewentualnie można też hostować plik szablonu aplikacji na serwerze WWW QNAP. Zobacz Hostowanie niestandardowego szablonu aplikacji przy użyciu serwera WWW QNAP.

Ważne:

Po zaktualizowaniu pliku JSON niestandardowych szablonów aplikacji musisz ponownie uruchomić kontener NGINX, aby odzwierciedlić zmiany w kontenerze.

  1. Przekaż plik niestandardowego szablonu aplikacji.
    1. Otwórz aplikację File Station.
    2. Przejdź do folderu na urządzeniu.
    3. Przekaż plik szablonu aplikacji.
    4. Zapamiętaj lokalizację pliku szablonu do użycia później.
  2. Otwórz aplikację Container Station.
  3. W górnym panelu kliknij strzałkę obok pozycji Odkryj.
  4. Wybierz pozycję Utwórz kontener.

    Zostanie otwarte okno Utwórz kontener.

  5. Wybierz obraz.

    Ustawienie

    Działanie

    Tryb

    Wybierz opcję Tryb podstawowy.

    Rejestr

    Wybierz pozycję Docker Hub.

    Obraz

    Wprowadź wartośćnginx.

  6. Kliknij przycisk Dalej.
  7. Opcjonalnie: Skonfiguruj ustawienia kontenera.

    Ustawienie

    Działanie

    Nazwa

    Wprowadź nazwę kontenera. Przykład: nginx-moj-szablon.

    Zasady automatycznego uruchamiania

    Wybierz pozycję Tylko w przypadku zatrzymania.

    Ta opcja spowoduje, że kontener będzie zawsze ponownie uruchamiany, dopóki nie zostanie zatrzymany ręcznie przez użytkownika.

    Konfiguracja sieci

    Skonfiguruj ustawienia odpowiednie dla Twojego środowiska sieciowego.

    W tym samouczku używamy trybu sieci Domyślny i wysyłamy ruch do kontenera przez port30080 na hoście.

    Uwaga:

    Jeśli nie podano wartości w polu Host, opublikowany port może zmienić się po ponownym uruchomieniu kontenera. Może to spowodować, że szablon aplikacji stanie się niedostępny dla aplikacji Container Station.

  8. Opcjonalnie: Zmodyfikuj ustawienia zaawansowane.
    1. Kliknij pozycję Ustawienia zaawansowane.

      Zostanie wyświetlone okno Ustawienia zaawansowane.

    2. Przejdź do zakładki Pamięć masowa.
    3. Kliknij strzałkę obok opcji Dodaj wolumin.
    4. Wybierz pozycję Powiąż ścieżkę montowania hosta.

      Zostanie dodany nowy wiersz pamięci masowej.

    5. Kliknij pozycję .

      Zostanie wyświetlone okno Wybierz ścieżkę hosta.

    6. Zlokalizuj i wybierz plik szablonu aplikacji przesłany wcześniej.
    7. Kliknij przycisk Zastosuj.
    8. W polu Kontener wprowadź wartość/usr/share/nginx/html/TEMPLATE_FILENAME.
      Uwaga:

      Zastąp wartośćTEMPLATE_FILENAME nazwą Twojego pliku szablonu. Przykład: /usr/share/nginx/html/my-templates.json

    9. Wybierz pozycję TO.
    10. Kliknij przycisk Zastosuj.

      Aplikacja Container Station zapisze ustawienia pamięci masowej.

  9. Kliknij przycisk Dalej.
  10. Przejrzyj ustawienia kontenera, a następnie kliknij pozycję Zakończ.

Plik szablonu aplikacji stanie się dostępny do użycia.

Uwaga:

Możesz sprawdzić, czy plik szablonu aplikacji jest dostępny, wprowadzając adres http://HOST_IP_ADDRESS:PUBLISHED_HOST_PORT/TEMPLATE_FILENAME w przeglądarce internetowej. Przykład: http://192.168.1.1:30080/my-templates.json.

Hostowanie niestandardowego szablonu aplikacji przy użyciu serwera WWW QNAP

Następnie należy udostępnić niestandardowy szablon aplikacji dla aplikacji Container Station. W tym temacie wyjaśniono proces hostowania pliku szablonu na serwerze WWW QNAP.

Ewentualnie możesz też hostować plik szablonu aplikacji przy użyciu kontenera NGINX bezpośrednio w aplikacji Container Station. Zobacz Hostowanie niestandardowego szablonu aplikacji w kontenerze NGINX.

  1. Włącz serwer WWW QTS.
    1. Zaloguj się do systemu jako administrator.
    2. Wybierz kolejno Panel sterowania > Aplikacje > Serwer WWW > Serwer WWW.
    3. Zaznacz opcję Włącz serwer WWW.
    4. Opcjonalnie: Skonfiguruj ustawienia serwera WWW.
    5. Kliknij przycisk Zastosuj.

      System włączy serwer WWW.

  2. Przekaż plik niestandardowego szablonu aplikacji.
    1. Otwórz aplikację File Station.
    2. Przejdź do folderu Sieć Web utworzonego dla serwera WWW.
    3. Przekaż plik szablonu aplikacji.

Plik szablonu aplikacji stanie się dostępny do użycia.

Uwaga:

Możesz sprawdzić, czy plik szablonu aplikacji jest dostępny, wprowadzając adres http://HOST_IP_ADDRESS:WEB_SERVER_PORT/TEMPLATE_FILENAME w przeglądarce internetowej. Przykład: http://192.168.1.1:80/my-templates.json.

Dodawanie niestandardowego szablonu aplikacji do aplikacji Container Station

Następnym krokiem jest dodanie pliku niestandardowego szablonu aplikacji do aplikacji Container Station. Dzięki temu lista aplikacji stanie się dostępna w aplikacji Container Station.

  1. Uruchom aplikację Container Station.
  2. W menu kliknij pozycję Preferencje.
  3. Przejdź do pozycji Szablony aplikacji.
  4. Wybierz pozycję Włącz szablon niestandardowy.
  5. Podaj adres URL do niestandardowego szablonu aplikacji.
    Uwaga:

    W zależności od konfiguracji adres URL może wymagać uwzględnienia adresu IP i numeru portu skonfigurowanego serwera WWW. Przykład: http://192.168.1.1:30080/my-template-file.json.

  6. Kliknij przycisk Zastosuj.

Aplikacja Container Station zapisze niestandardowy szablon aplikacji.

Wdrażanie niestandardowego szablonu aplikacji

Ostatnim krokiem jest wdrożenie kontenera z pliku niestandardowego szablonu aplikacji dodanego w poprzednim kroku.

  1. W menu przejdź do pozycji Szablony aplikacji.
  2. Przejdź do karty Szablony niestandardowe.
  3. Zidentyfikuj szablon.
  4. Kliknij pozycję Wdróż.

Zostanie otwarty kreator Wdróż kontener. Zobacz Tworzenie kontenera Docker.

Czy artykuł ten był przydatny?

60% ludzi uważa, że to pomaga.
Dziękujemy za przekazanie opinii.

Poinformuj nas proszę, w jaki sposób możemy ulepszyć ten artykuł:

Bardziej szczegółowe opinie można wpisać poniżej.

Wybierz specyfikację

      Więcej Mniej

      Ta strona dostępna jest w też krajach/regionach:

      open menu
      back to top