← До списку лабораторних по Docker
Повний опис / сценарій лабораторної:
Мета: навчитися безпечно передавати секрети і конфігурацію сервісам у 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. Міні звіт. Завдання: опиши чому секрети не можна зберігати як звичайні змінні середовища у прод.