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
docker config create— Tworzenie nowej konfiguracjidocker config ls— Lista wszystkich konfiguracji-
docker config inspect— Pobieranie informacji o konfiguracji 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:
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:
docker config create nginx_config ./nginx.conf
2. Lista wszystkich konfiguracji
Do przeglądania wszystkich utworzonych konfiguracji używa się komendy docker config ls:
docker config ls
Wynik komendy:
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:
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:
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
docker secret create— Tworzenie nowego sekretudocker secret ls— Lista wszystkich sekretówdocker secret inspect— Pobranie informacji o sekreciedocker 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:
mojsekretnehaslo
Stwórz sekret w Dockerze:
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:
docker secret ls
Wynik komendy:
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:
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:
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
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
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:
user www-data;
worker_processes 4;
Tworzenie nowej wersji konfiguracji
docker config create nginx_config_v2 ./nginx.conf
Aktualizacja usługi z nową konfiguracją
docker service update --config-rm nginx_config --config-add
source=nginx_config_v2,target=/etc/nginx/nginx.conf nginx
GO TO FULL VERSION