Инструменты пользователя

Инструменты сайта


docker:swarm:сonfig

Это старая версия документа!


Хранение данных конфигурации с помощью 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/swarm/сonfig.1702235935.txt.gz · Последние изменения: 2023/12/10 22:18 — werwolf