Szablony aplikacji w Container Station umożliwiają wdrażanie wstępnie skonfigurowanych kontenerów w środowisku QNAP. Domyślnie Container Station udostępnia kolekcję szablonów zweryfikowanych przez QNAP (QNAP-Verified Templates), ale możesz dodawać własne niestandardowe szablony aplikacji, aby spełnić swoje specyficzne potrzeby. Niestandardowe szablony aplikacji możesz hostować bezpośrednio na urządzeniu QNAP lub na zewnętrznym serwerze WWW.
Ten samouczek opisuje dwie metody hostowania niestandardowych szablonów aplikacji na urządzeniu QNAP oraz sposób konfigurowania Container Station w celu uzyskania dostępu do tych niestandardowych szablonów aplikacji.
- Tworzenie pliku niestandardowego szablonu aplikacji
- Hostowanie niestandardowego szablonu aplikacji w kontenerze NGINX
- Hostowanie niestandardowego szablonu aplikacji przy użyciu serwera WWW QNAP
- Dodawanie niestandardowego szablonu aplikacji do Container Station
- Wdrażanie niestandardowego szablonu aplikacji
Tworzenie pliku niestandardowego szablonu aplikacji
Pierwszym krokiem jest utworzenie pliku niestandardowego szablonu aplikacji. Domyślnie Container Station udostępnia listę kontenerów, które zostały zweryfikowane pod kątem poprawnego działania z urządzeniem QNAP. Możesz pobrać i zmodyfikować szablony zweryfikowane przez QNAP (QNAP-Verified Templates) tutaj lub samodzielnie utworzyć nowy plik.
Uwaga:
Plik szablonu można modyfikować w dowolnym edytorze tekstu.
Format szablonu aplikacji
Definicje szablonów aplikacji są zapisywane w formacie JSON. Prawidłowe szablony składają się z tablicy oraz jednego lub więcej elementów szablonu kontenera. Każdy element szablonu kontenera jest obiektem JSON zawierającym obowiązkowe lub opcjonalne pola danych. Format powinien być podobny do poniższego przykładu:
Kod:
{
"templates": [
{
// template1
},
{
// template2
},
...
]
}
Format elementu JSON
type
| Atrybut | Opis |
|---|---|
| Opis | Typ kontenera (Docker lub LXD) dla tego szablonu. |
| Ważność | Wymagany |
| Format | Liczba całkowita |
| Akceptowane wartości |
|
title
| Atrybut | Opis |
|---|---|
| Opis | Tytuł szablonu. |
| Ważność | Wymagany |
| Format | Ciąg znaków |
| Akceptowane wartości | Dowolny ciąg znaków |
sub_title
| Atrybut | Opis |
|---|---|
| Opis | Informacje o wersji szablonu. |
| Ważność | Wymagany |
| Format | Ciąg znaków |
| Akceptowane wartości | Dowolny ciąg znaków |
description
| Atrybut | Opis |
|---|---|
| Opis | Opis służący do przekazywania informacji o szablonie. |
| Ważność | Wymagany |
| Format | Ciąg znaków |
| Akceptowane wartości | Dowolny ciąg znaków |
logo
| Atrybut | Opis |
|---|---|
| Opis | Lokalizacja logo szablonu. |
| Ważność | Opcjonalny |
| Format | Ciąg znaków |
| Akceptowane wartości | Dowolny prawidłowy adres URL lub ścieżka względna w stosunku do domeny sieciowej, na której hostowany jest niestandardowy szablon aplikacji. |
location
| Atrybut | Opis |
|---|---|
| Opis | Adres URL szablonu. Może to być strona internetowa z informacjami o szablonie. |
| Ważność | Opcjonalny |
| Format | Ciąg znaków |
| Akceptowane wartości | Dowolny prawidłowy adres URL |
platform
| Atrybut | Opis |
|---|---|
| Opis | Obsługiwana platforma. Musi zawierać prawidłową wartość. |
| Ważność | Wymagany |
| Format | Ciąg znaków |
| Akceptowane wartości |
|
| Przykład |
Kod:
|
image
| Atrybut | Opis |
|---|---|
| Opis | Obraz skojarzony z szablonem. |
| Ważność | Wymagany |
| Format | Ciąg znaków |
| Akceptowane wartości | Dowolny prawidłowy obraz |
| Przykład |
Kod:
|
command
| Atrybut | Opis |
|---|---|
| Opis | Polecenie do uruchomienia w kontenerze Docker. Jeśli nie zostanie określone, kontener użyje domyślnego polecenia zdefiniowanego w pliku Dockerfile. |
| Ważność | Opcjonalny |
| Format | Ciąg znaków |
| Akceptowane wartości | Dowolny ciąg znaków |
| Przykład |
Kod:
|
entrypoint
| Atrybut | Opis |
|---|---|
| Opis | Punkt wejścia do uruchomienia kontenera Docker. Jeśli nie zostanie określony, kontener użyje domyślnego punktu wejścia zdefiniowanego w pliku Dockerfile. |
| Ważność | Opcjonalny |
| Format | Ciąg znaków |
| Akceptowane wartości | Dowolny ciąg znaków |
| Przykład |
Kod:
|
env
| Atrybut | Opis |
|---|---|
| Opis | Tablica JSON opisująca zmienne środowiskowe wymagane przez szablon. Każdy element tablicy musi być prawidłowym obiektem JSON. |
| Ważność | Opcjonalny |
| Format | Tablica |
| Akceptowane wartości | Prawidłowa tablica JSON |
| Format tablicy |
|
| Przykład |
Kod:
|
labels
| Atrybut | Opis |
|---|---|
| Opis | Tablica JSON opisująca etykiety skojarzone z szablonem. Każdy element tablicy musi być prawidłowym obiektem JSON. |
| Ważność | Opcjonalny |
| Format | Tablica |
| Akceptowane wartości | Prawidłowa tablica JSON |
| Format tablicy |
|
| Przykład |
Kod:
|
volumes
| Atrybut | Opis |
|---|---|
| Opis | Tablica JSON opisująca woluminy powiązane z szablonem. Każdy element tablicy musi być prawidłowym obiektem JSON z wymaganą właściwością container. |
| Ważność | Opcjonalne |
| Format | Tablica |
| Akceptowane wartości | Prawidłowa tablica JSON |
| Format tablicy |
|
| Przykład |
Kod:
|
ports
| Atrybut | Opis |
|---|---|
| Opis | Tablica JSON opisująca porty udostępniane przez szablon. Każdy element tablicy musi być prawidłowym ciągiem JSON określającym numer portu w kontenerze oraz protokół. Opcjonalnie można poprzedzić go numerem portu i dwukropkiem (na przykład 8080 |
| Ważność | Opcjonalne |
| Format | Tablica |
| Akceptowane wartości | Prawidłowa tablica JSON |
| Przykład |
Kod:
|
hostname
| Atrybut | Opis |
|---|---|
| Opis | Nazwa hosta kontenera. Może ułatwić identyfikację kontenera. |
| Ważność | Opcjonalne |
| Format | Ciąg znaków |
| Akceptowane wartości | Dowolna wartość ciągu znaków |
| Przykład |
Kod:
|
restart_policy
| Atrybut | Opis |
|---|---|
| Opis | Zasada ponownego uruchamiania powiązana z kontenerem Docker. Jeśli nie zostanie określona, wartość domyślna to unless-stopped. |
| Ważność | Opcjonalne |
| Format | Ciąg znaków |
| Akceptowane wartości |
|
| Przykład |
Kod:
|
auto_start_policy
| Atrybut | Opis |
|---|---|
| Opis | Zasada automatycznego uruchamiania powiązana z kontenerem LXD. Jeśli nie zostanie określona, wartość domyślna to retain. |
| Ważność | Opcjonalne |
| Format | Ciąg znaków |
| Akceptowane wartości |
|
| Przykład |
Kod:
|
interactive
| Atrybut | Opis |
|---|---|
| Opis | Określa, czy kontener Docker powinien być uruchamiany w trybie pierwszoplanowym. Jeśli nie zostanie określone, wartość domyślna to true. |
| Ważność | Opcjonalne |
| Format | Wartość logiczna |
| Akceptowane wartości |
|
| Przykład |
Kod:
|
tty
| Atrybut | Opis |
|---|---|
| Opis | Określa, czy kontenerowi Docker powinien zostać przydzielony pseudo-TTY. Jeśli nie zostanie określone, wartość domyślna to true. |
| Ważność | Opcjonalne |
| Format | Wartość logiczna |
| Akceptowane wartości |
|
| Przykład |
Kod:
|
privileged
| Atrybut | Opis |
|---|---|
| Opis | Określa, czy kontener powinien być uruchamiany w trybie uprzywilejowanym. Jeśli nie zostanie określone, wartość domyślna to false. |
| Ważność | Opcjonalne |
| Format | Wartość logiczna |
| Akceptowane wartości |
|
| Przykład |
Kod:
|
Hostowanie niestandardowego szablonu aplikacji w kontenerze NGINX
Następnie należy udostępnić niestandardowy szablon aplikacji w aplikacji Container Station. W tym temacie opisano proces hostowania pliku szablonu przy użyciu kontenera NGINX uruchomionego również w aplikacji Container Station.
Alternatywnie można 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 z niestandardowymi szablonami aplikacji należy uruchomić ponownie kontener NGINX, aby zmiany zostały odzwierciedlone w kontenerze.
- Prześlij plik niestandardowego szablonu aplikacji.
- Otwórz aplikację File Station.
- Przejdź do folderu na urządzeniu.
- Prześlij plik szablonu aplikacji.
- Zanotuj lokalizację pliku szablonu do późniejszego użycia.
- Otwórz aplikację Container Station.
- Na górnym panelu kliknij strzałkę obok opcji Eksploruj.
- Wybierz opcję Utwórz kontener.
Zostanie otwarte okno Utwórz kontener. - Wybierz obraz.
Ustawienie Działanie Tryb Wybierz Tryb podstawowy. Rejestr Wybierz Docker Hub. Obraz Wprowadź nginx.
- Kliknij Dalej.
- Opcjonalnie: Skonfiguruj ustawienia kontenera.
Ustawienie Działanie Nazwa Wprowadź nazwę kontenera. Na przykład: nginx-my-template. Zasada automatycznego uruchamiania Wybierz opcję Jeśli nie zatrzymano.
Ta opcja spowoduje, że kontener będzie zawsze uruchamiany ponownie, chyba że zostanie ręcznie zatrzymany przez użytkownika.Konfiguracja sieci Skonfiguruj ustawienia odpowiednio do środowiska sieciowego.
W tym samouczku używamy domyślnego trybu sieci i kierujemy ruch do kontenera przez port 30080 na hoście.
Uwaga:
Jeśli pole Host nie zostanie określone, opublikowany port może ulec zmianie po ponownym uruchomieniu kontenera. Może to spowodować, że szablon aplikacji stanie się niedostępny dla aplikacji Container Station.
- Opcjonalnie: Zmodyfikuj ustawienia zaawansowane.
- Kliknij Ustawienia zaawansowane.
Pojawi się okno Ustawienia zaawansowane. - Przejdź do karty Pamięć masowa.
- Kliknij strzałkę obok opcji Dodaj wolumin.
- Wybierz Bind Mount Host Path.
Zostanie dodany nowy wiersz pamięci masowej. - Kliknij
.
Otworzy się okno Wybierz ścieżkę hosta. - Znajdź i wybierz wcześniej przesłany plik szablonu aplikacji.
- Kliknij Zastosuj.
- W polu Kontener wprowadź /usr/share/nginx/html/TEMPLATE_FILENAME. Uwaga:
Zastąp TEMPLATE_FILENAME nazwą pliku szablonu. Na przykład: /usr/share/nginx/html/my-templates.json - Wybierz RO.
- Kliknij Zastosuj.
Container Station zapisuje ustawienia pamięci masowej.
- Kliknij Ustawienia zaawansowane.
- Kliknij Dalej.
- Przejrzyj ustawienia kontenera, a następnie kliknij Zakończ.
Plik szablonu aplikacji będzie dostępny do użycia.
Uwaga:
Możesz sprawdzić dostępność pliku szablonu aplikacji, wpisując w przeglądarce internetowej adres http://HOST_IP_ADDRESS
Hostowanie niestandardowego szablonu aplikacji przy użyciu serwera WWW QNAP
Następnie musisz udostępnić niestandardowy szablon aplikacji dla Container Station. Ten temat wyjaśnia proces hostowania pliku szablonu przy użyciu serwera WWW QNAP.
Alternatywnie możesz również hostować plik szablonu aplikacji w kontenerze NGINX bezpośrednio w Container Station. Zobacz Hostowanie niestandardowego szablonu aplikacji w kontenerze NGINX.
- Włącz serwer WWW QTS.
- Zaloguj się do systemu jako administrator.
- Przejdź do Panelu sterowania > Aplikacje > Serwer WWW > Serwer WWW.
- Wybierz Włącz serwer WWW.
- Opcjonalnie: Skonfiguruj ustawienia serwera WWW.
- Kliknij Zastosuj.
System włącza serwer WWW.
- Prześlij niestandardowy plik szablonu aplikacji.
- Otwórz Menedżera plików.
- Przejdź do folderu Web utworzonego dla serwera WWW.
- Prześlij plik szablonu aplikacji.
Plik szablonu aplikacji będzie dostępny do użycia.
Uwaga:
Możesz sprawdzić dostępność pliku szablonu aplikacji, wpisując w przeglądarce internetowej adres http://HOST_IP_ADDRESS:WEB_SERVER_PORT/TEMPLATE_FILENAME. Na przykład: http://192.168.1.1:80/my-templates.json.
Dodawanie niestandardowego szablonu aplikacji do Container Station
Następnym krokiem jest dodanie niestandardowego pliku szablonu aplikacji do Container Station. Dzięki temu lista aplikacji będzie dostępna w Container Station.
- Uruchom Container Station.
- W menu kliknij Preferencje.
- Przejdź do karty Szablony aplikacji.
- Wybierz Włącz niestandardowy szablon.
- Podaj adres URL niestandardowego szablonu aplikacji. Uwaga:
W zależności od konfiguracji adres URL może wymagać podania adresu IP i numeru portu skonfigurowanego serwera WWW. Na przykład: http://192.168.1.1:30080/my-template-file.json.
- Kliknij Zastosuj.
Container Station zapisuje niestandardowy szablon aplikacji.
Wdrażanie niestandardowego szablonu aplikacji
Ostatnim krokiem jest wdrożenie kontenera na podstawie niestandardowego pliku szablonu aplikacji dodanego w poprzednim kroku.
- W menu przejdź do Szablonów aplikacji.
- Przejdź do karty Szablony niestandardowe.
- Zidentyfikuj szablon.
- Kliknij Wdróż.
Otworzy się kreator Wdrożenie kontenera. Zobacz Tworzenie kontenera Docker.