Docker Image, расширяющий официальный InfluxDB с _file Environment переменные, которые будут совместимы с секретами Docker
Это изображение ведет себя точно так же, как описано в документации родительских изображений. Единственное отличие состоит в том, что для всех переменных среды пароля существует соответствующая переменная среды Password_file, которая используется для определения файла для чтения значения родителя, если она уже не будет установлена.
Описание изображения родителей ниже.
InfluxDB - это база данных временных рядов, созданная с нуля для обработки высоких нагрузок записи и запросов. InfluxDB предназначен для использования в качестве хранилища поддержки для любого варианта использования, включающего большие объемы данных с меткой времени, включая мониторинг DevOps, метрики приложений, данные датчика IoT и аналитику в реальном времени.
PlupuxDB документация
Изображение InfluxDB раскрывает общий объем в /var/lib/influxdb
, поэтому вы можете установить каталог хоста для доступа к доступу со постоянным контейнером. Типичным вызовом контейнера может быть:
$ docker run -p 8086:8086
-v $PWD:/var/lib/influxdb
influxdb
Измените $PWD
в каталог, где вы хотите сохранить данные, связанные с контейнером InfluxDB.
Вы также можете иметь Docker управлять точкой монтирования громкости, используя названный объем.
$ docker run -p 8086:8086
-v influxdb:/var/lib/influxdb
influxdb
Следующие порты важны и используются InfluxDB.
Порт HTTP API будет автоматически обнаружен при использовании docker run -P
.
Интерфейс администратора не выявляется автоматически при использовании docker run -P
и по умолчанию отключен. Интерфейс Adminstrator требует, чтобы веб -браузер имел доступ к InfluxDB на том же порту в контейнере, что и из веб -браузера. Поскольку -P
обнажает порт HTTP на хост на случайном порте, интерфейс администратора не совместим с этой настройкой.
Интерфейс администратора устарел по состоянию на 1,1,0 и будет удален в 1.3.0.
Найдите больше о конечных точках и портах API здесь.
InfluxDB может быть либо настроен из файла конфигурации, либо с использованием переменных среды. Чтобы установить файл конфигурации и использовать его с сервером, вы можете использовать эту команду:
Создать файл конфигурации по умолчанию:
$ docker run --rm influxdb influxd config > influxdb.conf
Измените конфигурацию по умолчанию, которая теперь будет доступна по $PWD
. Затем запустите контейнер InfluxDB.
$ docker run -p 8086:8086
-v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro
influxdb -config /etc/influxdb/influxdb.conf
Измените $PWD
в каталог, где вы хотите сохранить файл конфигурации.
Для переменных среды формат - INFLUXDB_$SECTION_$NAME
. Все тире ( -
) заменяются подчеркиванием ( _
). Если переменная нет в разделе, то опустите эту часть.
Примеры:
INFLUXDB_REPORTING_DISABLED=true
INFLUXDB_META_DIR=/path/to/metadir
INFLUXDB_DATA_QUERY_LOG_ENABLED=false
Найдите больше о настройке InfluxDB здесь
InfluxDB поддерживает протокол графитовой линии, но служба и порты не подвергаются по умолчанию. Чтобы запустить InfluxDB с включенной поддержкой графита, вы можете использовать файл конфигурации или установить соответствующие переменные среды. Запустите InfluxDB с конфигурацией графита по умолчанию:
docker run -p 8086:8086 -p 2003:2003
-e INFLUXDB_GRAPHITE_ENABLED=true
influxdb
См. Readme на GitHub для более подробной документации для настройки сервиса графита. Чтобы воспользоваться преимуществами графитовых шаблонов, вы должны использовать файл конфигурации, выводя файл конфигурации по умолчанию, используя шаги выше, и изменив раздел [[graphite]]
.
Интерфейс администратора устарел по состоянию на 1,1,0 и будет удален в 1.3.0. Он отключен по умолчанию. При необходимости он все равно может быть включен, установив переменную среды, как ниже:
docker run -p 8086:8086 -p 8083:8083
-e INFLUXDB_ADMIN_ENABLED=true
influxdb
Чтобы использовать интерфейс администратора, как API HTTP, так и API интерфейса администратора должны быть направлены в один и тот же порт.
Создание БД под названием MyDB:
$ curl -G http://localhost:8086/query --data-urlencode " q=CREATE DATABASE mydb "
Вставка в БД:
$ curl -i -XPOST ' http://localhost:8086/write?db=mydb ' --data-binary ' cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000 '
Узнайте больше об этом в официальной документации
Запустите контейнер:
$ docker run --name=influxdb -d -p 8086:8086 influxdb
Запустите приток клиента в другом контейнере:
$ docker run --rm --link=influxdb -it influxdb influx -host influxdb
На данный момент вы не можете использовать docker exec
для запуска клиента притока, поскольку docker exec
не будет должным образом распределять TTY. Это связано с текущей ошибкой в Docker, которая подробно описана в Docker/Docker#8755.
Изображение InfluxDB содержит некоторые дополнительные функции для инициализации базы данных. Эти варианты не предложены для производства, но они весьма полезны при запуске автономных экземпляров для тестирования.
Скрипт инициализации базы данных будет вызван только при запуске influxd
. Это не будет выполнено при запуске какой -либо другой программы.
Изображение InfluxDB использует несколько переменных среды для автоматической настройки определенных частей сервера. Они могут значительно помочь вам в использовании этого изображения.
Автоматически инициализирует базу данных с именем этой переменной среды.
Включает аутентификацию. Либо это должно быть установлено, либо auth-enabled = true
должен быть установлен в файле конфигурации для любых параметров, связанных с аутентификацией ниже для работы.
Название пользователя администратора будет создано. Если это неверно, ни один пользователь администратора не создан.
Пароль для пользователя администратора настроен с помощью INFLUXDB_ADMIN_USER
. Если это неверно, случайный пароль генерируется и напечатан стандартным.
Имя пользователя, которое будет создано без привилегий. Если INFLUXDB_DB
установлен, этому пользователю будут предоставлены разрешения для чтения и записи для этой базы данных.
Пароль для пользователя настроен с INFLUXDB_USER
. Если это неверно, случайный пароль генерируется и напечатан стандартным.
Имя пользователя, которое будет создано с привилегиями для чтения на INFLUXDB_DB
. Если INFLUXDB_DB
не установлен, этот пользователь не получит предоставленных разрешений.
Пароль для пользователя настроен с помощью INFLUXDB_READ_USER
. Если это неверно, случайный пароль генерируется и напечатан стандартным.
Имя пользователя будет создано с помощью привилегий записи на INFLUXDB_DB
. Если INFLUXDB_DB
не установлен, этот пользователь не получит предоставленных разрешений.
Пароль для пользователя настроен с INFLUXDB_WRITE_USER
. Если это неверно, случайный пароль генерируется и напечатан стандартным.
Если изображение Docker /docker-entrypoint-initdb.d
какие-либо файлы с расширениями .sh
или .iql
Порядок, в котором они выполнены, определяется оболочкой. Обычно это алфавитный порядок.
Чтобы вручную инициализировать базу данных и выход, сценарий /init-influxdb.sh
может быть использован напрямую. Он принимает те же параметры, что и команда influxd run
. В качестве примера:
$ docker run --rm
-e INFLUXDB_DB=db0 -e INFLUXDB_ADMIN_ENABLED=true
-e INFLUXDB_ADMIN_USER=admin -e INFLUXDB_ADMIN_USER=supersecretpassword
-e INFLUXDB_USER=telegraf -e INFLUXDB_USER_PASSWORD=secretpassword
-v $PWD:/var/lib/influxdb
/init-influxdb.sh
Приведенное выше создает db0
базы данных, создаст пользователя администратора с помощью пароля supersecretpassword
, а затем создайте пользователя telegraf
с секретным паролем вашего телеграфа. Затем он выйдет и оставит позади любые файлы, которые он создал в томе, который вы установили.
Изображения influxdb
бывают разных вкусов, каждая из которых предназначена для конкретного варианта использования.
influxdb:<version>
Это изображение Defacto. Если вы не уверены в том, что вам нужно, вы, вероятно, хотите использовать этот. Он предназначен для использования как в качестве броска контейнера (установите исходный код и запустите контейнер для запуска вашего приложения), так и базой для создания других изображений.
influxdb:alpine
Это изображение основано на популярном проекте Alpine Linux, доступном на официальном изображении alpine
. Alpine Linux намного меньше, чем большинство изображений базовых распределения (~ 5 МБ), и, таким образом, приводит к гораздо более тонким изображениям в целом.
Этот вариант настоятельно рекомендуется, когда желаемый конечный размер изображения как можно меньше. Основное предостережение, которое следует отметить, заключается в том, что он использует Musl Libc вместо GLIBC и друзей, поэтому определенное программное обеспечение может столкнуться с проблемами в зависимости от глубины их требований LIBC. Тем не менее, у большинства программ не есть проблемы с этим, поэтому этот вариант обычно является очень безопасным выбором. Посмотрите эту ветку комментариев новостей хакеры для получения дополнительной информации о проблемах, которые могут возникнуть, и некоторых сравнений Pro/con с использованием альпийских изображений.
Чтобы минимизировать размер изображения, это необычно для дополнительных связанных инструментов (таких как git
или bash
) включаются в альпийские изображения. Используя это изображение в качестве базы, добавьте вещи, которые вам нужны в свой собственный DockerFile (см. Описание alpine
изображения для примеров, как установить пакеты, если вы незнакомы).
Просмотреть информацию о лицензии для программного обеспечения, содержащегося на этом изображении.
Как и во всех изображениях Docker, они, вероятно, также содержат другое программное обеспечение, которое может находиться под другими лицензиями (например, Bash и т. Д. Из базового распределения, наряду с любыми прямыми или косвенными зависимостями основного программного обеспечения).
Некоторая дополнительная информация о лицензии, которая могла быть выявлена автоматической, может быть найдена в каталоге repo-info
influxdb/
.
Что касается любого предварительно созданного использования изображений, то обязанность пользователя изображения обязан гарантировать, что любое использование этого изображения соответствует любым соответствующим лицензиям для всех программного обеспечения, содержащегося внутри.