← До фільтрів та технологій

← До списку лабораторних по Docker

Docker Лабораторна 24: Секрети в Swarm

Технологія: Docker

Номер лабораторної: 24 · Рівень: middle

Тема: Docker Swarm: секрети та конфіги

Повний опис / сценарій лабораторної:

Мета: навчитися безпечно передавати секрети і конфігурацію сервісам у Swarm.



Крок 1. Ініціалізувати Swarm якщо це ще не зроблено.

Команда: docker swarm init (якщо необхідно)



Крок 2. Створити секрет з паролем до бази.

Команда: echo "MySecurePass" | docker secret create db24-pass -

Пояснення: значення не потрапляє в історію shell якщо зробити це обережно.



Крок 3. Створити конфіг файл.

Команда: echo "max_connections=100" > db24.conf



Крок 4. Створити config обʼєкт.

Команда: docker config create db24-conf db24.conf

Пояснення: конфіги зручно передавати як read-only файли.



Крок 5. Створити сервіс який використовує секрет і конфіг.

Команда: docker service create --name db24 --secret db24-pass --config db24-conf redis:alpine

Пояснення: секрет буде змонтовано у /run/secrets а конфіг у /db24.conf або у вказаний шлях.



Крок 6. Переглянути опис сервісу.

Команда: docker service inspect db24

Пояснення: знайди розділи secrets і configs.



Крок 7. Зайти до контейнера сервісу.

Команда: docker exec -it $(docker ps -q --filter name=db24) sh



Крок 8. Перевірити наявність секрету і конфіг файлу.

Команди: ls /run/secrets; ls /

Пояснення: секрет доступний тільки всередині контейнера.



Крок 9. Вийти і прибрати дані після експерименту.

Команда: docker service rm db24; docker secret rm db24-pass; docker config rm db24-conf



Крок 10. Міні звіт.

Завдання: опиши чому секрети не можна зберігати як звичайні змінні середовища у прод.