6.1 Команда docker config
Docker надає вбудовані механізми для керування конфігураціями та секретами, що дозволяє безпечно і зручно управляти конфігураційними файлами та конфіденційними даними у контейнерах. Ці механізми допомагають покращити безпеку та спростити керування конфігураціями у розподілених системах. У цій лекції ми розглянемо, як використовувати команди docker config та docker secret, наведемо приклади та найкращі практики.
Основи роботи з конфігураціями
Команда docker config дозволяє керувати конфігураційними файлами, які можуть бути використані сервісами в Docker Swarm. Конфігурації забезпечують зручний спосіб передачі налаштувань та параметрів застосунку.
Основні команди docker config
docker config create— Створення нової конфігураціїdocker config ls— Перегляд усіх конфігурацій-
docker config inspect— Отримання інформації про конфігурацію docker config rm— Видалення конфігурації
Приклад використання docker config
Створення конфігурації
Для створення конфігурації використовується команда docker config create. Як приклад, створимо конфігураційний файл для Nginx.
Створіть файл nginx.conf:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
}
http {
server {
listen 80;
location / {
return 200 'Hello, World!';
add_header Content-Type text/plain;
}
}
}
Створіть конфігурацію в Docker:
docker config create nginx_config ./nginx.conf
2. Перегляд усіх конфігурацій
Для перегляду всіх створених конфігурацій використовується команда docker config ls:
docker config ls
Вивід команди:
ID NAME CREATED UPDATED
f8f8ff8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 nginx_config 10 seconds ago 10 seconds ago
3. Використання конфігурації у сервісі
Створіть сервіс, використовуючи створену конфігурацію:
docker service create --name nginx --config source=nginx_config,target=/etc/nginx/nginx.conf -p 8080:80 nginx
4. Видалення конфігурації
Для видалення конфігурації використовується команда docker config rm:
docker config rm nginx_config
6.2 Команда docker secret
Команда docker secret дозволяє управляти «секретами», такими як паролі, API-ключі та сертифікати, які можуть безпечно використовуватись сервісами в Docker Swarm. Секрети зберігаються у зашифрованому вигляді та доступні тільки тим сервісам, які їх використовують.
Основні команди docker secret
docker secret create— Створення нового секретуdocker secret ls— Список всіх секретівdocker secret inspect— Отримання інформації про секретdocker secret rm— Видалення секрету
Приклад використання docker secret
1. Створення секрету
Для створення секрету використовується команда docker secret create. Як приклад, створимо секрет для пароля бази даних.
Створіть файл db_password.txt:
mysecretpassword
Створіть секрет у Docker:
docker secret create db_password ./db_password.txt
2. Список всіх секретів
Для перегляду всіх створених секретів використовується команда docker secret ls:
docker secret ls
Вивід команди:
ID NAME CREATED UPDATED
f8f8ff8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 db_password 10 seconds ago 10 seconds ago
3. Використання секрету у сервісі
Створіть сервіс, використовуючи створений секрет:
docker service create --name postgres --secret db_password -e
POSTGRES_PASSWORD_FILE=/run/secrets/db_password postgres
4. Видалення секрету
Для видалення секрету використовується команда docker secret rm:
docker secret rm db_password
6.3 Практичні приклади та найкращі практики
Практичні приклади та найкращі практики
Приклад 1: Використання конфігурацій та секретів у веб-додатку
Створення конфігураційного файлу та секрету
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
Створення сервісів, що використовують конфігурації та секрети
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
Приклад 2: Оновлення конфігурації
Оновлення вмісту конфігураційного файлу
Змініть файл nginx.conf:
user www-data;
worker_processes 4;
Створення нової версії конфігурації
docker config create nginx_config_v2 ./nginx.conf
Оновлення сервісу з новою конфігурацією
docker service update --config-rm nginx_config --config-add
source=nginx_config_v2,target=/etc/nginx/nginx.conf nginx
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ