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