JavaRush /Курси /Модуль 2: Fullstack /Робота з конфігураціями та секретами

Робота з конфігураціями та секретами

Модуль 2: Fullstack
Рівень 16 , Лекція 5
Відкрита

6.1 Команда docker config

Docker надає вбудовані механізми для керування конфігураціями та секретами, що дозволяє безпечно і зручно управляти конфігураційними файлами та конфіденційними даними у контейнерах. Ці механізми допомагають покращити безпеку та спростити керування конфігураціями у розподілених системах. У цій лекції ми розглянемо, як використовувати команди docker config та docker secret, наведемо приклади та найкращі практики.

Основи роботи з конфігураціями

Команда docker config дозволяє керувати конфігураційними файлами, які можуть бути використані сервісами в Docker Swarm. Конфігурації забезпечують зручний спосіб передачі налаштувань та параметрів застосунку.

Основні команди docker config

  1. docker config create — Створення нової конфігурації
  2. docker config ls — Перегляд усіх конфігурацій
  3. docker config inspect — Отримання інформації про конфігурацію
  4. docker config rm — Видалення конфігурації

Приклад використання docker config

Створення конфігурації

Для створення конфігурації використовується команда docker config create. Як приклад, створимо конфігураційний файл для Nginx.

Створіть файл nginx.conf:

nginx

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:

Terminal

docker config create nginx_config ./nginx.conf

2. Перегляд усіх конфігурацій

Для перегляду всіх створених конфігурацій використовується команда docker config ls:

Terminal

docker config ls

Вивід команди:

Terminal

ID                                        NAME           CREATED             UPDATED
f8f8ff8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8   nginx_config    10 seconds ago     10 seconds ago

3. Використання конфігурації у сервісі

Створіть сервіс, використовуючи створену конфігурацію:

Terminal

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

4. Видалення конфігурації

Для видалення конфігурації використовується команда docker config rm:

Terminal

docker config rm nginx_config

6.2 Команда docker secret

Команда docker secret дозволяє управляти «секретами», такими як паролі, API-ключі та сертифікати, які можуть безпечно використовуватись сервісами в Docker Swarm. Секрети зберігаються у зашифрованому вигляді та доступні тільки тим сервісам, які їх використовують.

Основні команди docker secret

  1. docker secret create — Створення нового секрету
  2. docker secret ls — Список всіх секретів
  3. docker secret inspect — Отримання інформації про секрет
  4. docker secret rm — Видалення секрету

Приклад використання docker secret

1. Створення секрету

Для створення секрету використовується команда docker secret create. Як приклад, створимо секрет для пароля бази даних.

Створіть файл db_password.txt:

Text

mysecretpassword

Створіть секрет у Docker:

Terminal

docker secret create db_password ./db_password.txt

2. Список всіх секретів

Для перегляду всіх створених секретів використовується команда docker secret ls:

Terminal

docker secret ls

Вивід команди:

Terminal

ID                                        NAME           CREATED            UPDATED
f8f8ff8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8   db_password    10 seconds ago     10 seconds ago

3. Використання секрету у сервісі

Створіть сервіс, використовуючи створений секрет:

Terminal

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

4. Видалення секрету

Для видалення секрету використовується команда docker secret rm:

Terminal

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:

nginx

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
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ