CodeGym /Kursy /Docker SELF /Praca z konfiguracjami i sekretami

Praca z konfiguracjami i sekretami

Docker SELF
Poziom 20 , Lekcja 0
Dostępny

6.1 Komenda docker config

Docker oferuje wbudowane mechanizmy do zarządzania konfiguracjami i sekretami, co pozwala na bezpieczne i wygodne zarządzanie plikami konfiguracyjnymi oraz danymi poufnymi w kontenerach. Te mechanizmy pomagają poprawić bezpieczeństwo i uprościć zarządzanie konfiguracjami w systemach rozproszonych. W tym wykładzie zobaczymy, jak korzystać z komend docker config i docker secret, podamy przykłady i najlepsze praktyki.

Podstawy pracy z konfiguracjami

Komenda docker config pozwala zarządzać plikami konfiguracyjnymi, które mogą być używane przez usługi w Docker Swarm. Konfiguracje zapewniają wygodny sposób przekazywania ustawień i parametrów aplikacji.

Główne komendy docker config

  1. docker config create — Tworzenie nowej konfiguracji
  2. docker config ls — Lista wszystkich konfiguracji
  3. docker config inspect — Pobieranie informacji o konfiguracji
  4. docker config rm — Usuwanie konfiguracji

Przykład użycia docker config

Tworzenie konfiguracji

Do tworzenia konfiguracji używa się komendy docker config create. Jako przykład utworzymy plik konfiguracyjny dla Nginx.

Utwórz plik nginx.conf:

nginx

user www-data;
worker_processes auto;
pid /run/nginx.pid;
        
events {
    worker_connections 768;
}
        
http {
    server {
        listen 80;
        location / {
            return 200 'Cześć, Świecie!';
            add_header Content-Type text/plain;
        }
    }
}

Utwórz konfigurację w Dockerze:

Terminal

docker config create nginx_config ./nginx.conf

2. Lista wszystkich konfiguracji

Do przeglądania wszystkich utworzonych konfiguracji używa się komendy docker config ls:

Terminal

docker config ls

Wynik komendy:

Terminal

ID                                                                                       NAME           CREATED             UPDATED
f8f8ff8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8   nginx_config    10 sekund temu      10 sekund temu

3. Użycie konfiguracji w usłudze

Utwórz usługę, używając utworzonej konfiguracji:

Terminal

docker service create --name nginx --config source=nginx_config,target=/etc/nginx/nginx.conf -p 8080:80 nginx

4. Usuwanie konfiguracji

Do usuwania konfiguracji używa się komendy docker config rm:

Terminal

docker config rm nginx_config

6.2 Komenda docker secret

Komenda docker secret pozwala zarządzać „sekretami”, takimi jak hasła, klucze API i certyfikaty, które mogą być bezpiecznie używane przez usługi w Docker Swarm. Sekrety są przechowywane w zaszyfrowanej formie i dostępne tylko dla tych usług, które ich używają.

Główne komendy docker secret

  1. docker secret create — Tworzenie nowego sekretu
  2. docker secret ls — Lista wszystkich sekretów
  3. docker secret inspect — Pobranie informacji o sekrecie
  4. docker secret rm — Usunięcie sekretu

Przykład użycia docker secret

1. Tworzenie sekretu

Aby utworzyć sekret, używa się komendy docker secret create. Jako przykład, utworzymy sekret dla hasła bazy danych.

Stwórz plik db_password.txt:

Text

mojsekretnehaslo

Stwórz sekret w Dockerze:

Terminal

docker secret create db_password ./db_password.txt

2. Lista wszystkich sekretów

Aby zobaczyć wszystkie utworzone sekrety, używa się komendy docker secret ls:

Terminal

docker secret ls

Wynik komendy:

Terminal

ID                                                                                    NAME           CREATED             UPDATED
f8f8ff8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8   db_password    10 sekund temu     10 sekund temu

3. Użycie sekretu w usłudze

Stwórz usługę wykorzystującą utworzony sekret:

Terminal

docker service create --name postgres --secret db_password -e 
POSTGRES_PASSWORD_FILE=/run/secrets/db_password postgres

4. Usunięcie sekretu

Aby usunąć sekret, używa się komendy docker secret rm:

Terminal

docker secret rm db_password

6.3 Praktyczne przykłady i najlepsze praktyki

Praktyczne przykłady i najlepsze praktyki

Przykład 1: Wykorzystanie konfiguracji i sekretów w aplikacji webowej

Tworzenie pliku konfiguracyjnego i sekreta

Terminal

echo "user www-data;" > ./nginx.conf
echo "worker_processes auto;" >> ./nginx.conf
docker config create nginx_config ./nginx.conf

echo "mysecretpassword" > ./db_password.txt
docker secret create db_password ./db_password.txt

Tworzenie usług korzystających z konfiguracji i sekretów

Terminal

docker service create --name nginx --config source=nginx_config,target=/etc/nginx/nginx.conf -p 
8080:80 nginx

docker service create --name postgres --secret db_password -e 
POSTGRES_PASSWORD_FILE=/run/secrets/db_password postgres

Przykład 2: Aktualizacja konfiguracji

Aktualizacja zawartości pliku konfiguracyjnego

Zmień plik nginx.conf:

nginx

user www-data;
worker_processes 4;

Tworzenie nowej wersji konfiguracji

Terminal

docker config create nginx_config_v2 ./nginx.conf

Aktualizacja usługi z nową konfiguracją

Terminal

docker service update --config-rm nginx_config --config-add 
source=nginx_config_v2,target=/etc/nginx/nginx.conf nginx
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION