===== Хранение данных конфигурации с помощью Docker Configs =====
Конфигурации службы Docker swarm позволяют хранить неконфиденциальную информацию, например файлы конфигурации, вне образа службы или запущенных контейнеров. Это позволяет вам сохранять ваши образы как можно более универсальными, без необходимости привязывать файлы конфигурации к контейнерам или использовать переменные среды.
Конфиги работают аналогично секреты, за исключением того, что они не шифруются в состоянии покоя и монтируются непосредственно в файловую систему контейнера без использования RAM-дисков. Конфигурации могут быть добавлены или удалены из службы в любое время, и службы могут совместно использовать конфигурацию. Вы даже можете использовать конфигурации в сочетании с переменными среды или метками для максимальной гибкости. Значения конфигурации могут быть общими строками или двоичным содержимым (размером до 500 КБ).
==== Примеры ====
Команда docker config create считывает стандартный ввод, поскольку последний аргумент, представляющий файл, из которого нужно читает конфигурацию, имеет значение -.
vagrant@server1:~$ nano conf.txt
vagrant@server1:~$ docker config create my-config conf.txt
cfhbsd6z1f3d16pksxpdrua8t
или
vagrant@server1:~$ echo "This is a config" | docker config create my-config -
Создаёт службу redis и предоставьте ей доступ к конфигурации. По умолчанию контейнер может получает доступ к конфигурации по адресу /my-config, но вы можете настроить имя файла в контейнере, используя параметр target.
vagrant@server1:~$ docker config ls
ID NAME CREATED UPDATED
orfthipobkf7m8c6d4obidlgn my-config 19 seconds ago 19 seconds ago
vagrant@server1:~$ docker service create --name redis --config my-config redis:latest
Убедимся, что задача выполняется без проблем, используя docker service ps. Если все работает, вывод выглядит примерно так:
vagrant@server1:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e4c5a3212150 redis:latest "docker-entrypoint.s…" 8 seconds ago Up 7 seconds 6379/tcp redis.1.4t7ykwyua3ly435yjqglze3hv
vagrant@server1:~$ docker exec -it redis.1.4t7ykwyua3ly435yjqglze3hv bash
root@e4c5a3212150:/data# cd /
root@e4c5a3212150:/# cat my-config
This is a config
Останавливает и удаляет службу, а также удаляет конфигурацию из Docker.
vagrant@server5:~$ docker service rm redis
vagrant@server5:~$ docker config rm my-config