Imagem do docker que estende o influxo oficial com variáveis de ambiente de arquivo para serem compatíveis com segredos do Docker
Esta imagem se comporta exatamente como descrito na documentação das imagens dos pais. A única diferença é que, para todas as variáveis do ambiente de senha, há uma variável de ambiente senha senha_file, que é usada para determinar um arquivo para ler o valor do pai, caso ainda não seja definido.
Descrição da imagem do pai abaixo.
O InfluxDB é um banco de dados de séries temporais criado a partir do solo para lidar com cargas altas de gravação e consulta. O InfluxDB deve ser usado como uma loja de apoio para qualquer caso de uso que envolva grandes quantidades de dados de registro de data e hora, incluindo monitoramento do DevOps, métricas de aplicativos, dados do sensor de IoT e análises em tempo real.
Documentação do InfluxDB
A imagem do InfluxDB expõe um volume compartilhado em /var/lib/influxdb
, para que você possa montar um diretório host a esse ponto para acessar dados de contêineres persistentes. Uma invocação típica do contêiner pode ser:
$ docker run -p 8086:8086
-v $PWD:/var/lib/influxdb
influxdb
Modifique $PWD
no diretório, onde você deseja armazenar dados associados ao contêiner do InfluxDB.
Você também pode controlar o Docker o volume MountPoint usando um volume nomeado.
$ docker run -p 8086:8086
-v influxdb:/var/lib/influxdb
influxdb
As seguintes portas são importantes e são usadas pelo InfluxDB.
A porta da API HTTP será exposta automaticamente ao usar docker run -P
.
A interface do administrador não é exposta automaticamente ao usar docker run -P
e está desativada por padrão. A interface do administrador exige que o navegador da web tenha acesso ao influxo na mesma porta no contêiner do navegador da web. Como -P
expõe a porta HTTP ao host em uma porta aleatória, a interface do administrador não é compatível com essa configuração.
A interface do administrador é preterida a partir de 1.1.0 e será removida em 1.3.0.
Encontre mais sobre pontos de extremidade e portas da API aqui.
O InfluxDB pode ser configurado a partir de um arquivo de configuração ou usando variáveis de ambiente. Para montar um arquivo de configuração e usá -lo com o servidor, você pode usar este comando:
Gere o arquivo de configuração padrão:
$ docker run --rm influxdb influxd config > influxdb.conf
Modifique a configuração padrão, que agora estará disponível em $PWD
. Em seguida, inicie o contêiner InfluxDB.
$ docker run -p 8086:8086
-v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro
influxdb -config /etc/influxdb/influxdb.conf
Modifique $PWD
no diretório onde você deseja armazenar o arquivo de configuração.
Para variáveis de ambiente, o formato é INFLUXDB_$SECTION_$NAME
. Todos os traços ( -
) são substituídos por sublinhados ( _
). Se a variável não estiver em uma seção, omite essa parte.
Exemplos:
INFLUXDB_REPORTING_DISABLED=true
INFLUXDB_META_DIR=/path/to/metadir
INFLUXDB_DATA_QUERY_LOG_ENABLED=false
Encontre mais sobre a configuração do InfluxDB aqui
O InfluxDB suporta o protocolo de linha de grafite, mas o serviço e as portas não são expostos por padrão. Para executar o InfluxDB com suporte de grafite ativado, você pode usar um arquivo de configuração ou definir as variáveis de ambiente apropriadas. Execute o InfluxDB com a configuração de grafite padrão:
docker run -p 8086:8086 -p 2003:2003
-e INFLUXDB_GRAPHITE_ENABLED=true
influxdb
Consulte o ReadMe no Github para obter uma documentação mais detalhada para configurar o serviço de grafite. Para aproveitar os modelos de grafite, você deve usar um arquivo de configuração, produzindo um arquivo de configuração padrão usando as etapas acima e modificando a seção [[graphite]]
.
A interface do administrador é preterida a partir de 1.1.0 e será removida em 1.3.0. É desativado por padrão. Se necessário, ainda pode ser ativado definindo uma variável de ambiente como abaixo:
docker run -p 8086:8086 -p 8083:8083
-e INFLUXDB_ADMIN_ENABLED=true
influxdb
Para usar a interface do administrador, a API HTTP e a API da interface do administrador devem ser encaminhadas para a mesma porta.
Criando um banco de dados chamado MyDB:
$ curl -G http://localhost:8086/query --data-urlencode " q=CREATE DATABASE mydb "
Inserindo no banco de dados:
$ curl -i -XPOST ' http://localhost:8086/write?db=mydb ' --data-binary ' cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000 '
Leia mais sobre isso na documentação oficial
Inicie o contêiner:
$ docker run --name=influxdb -d -p 8086:8086 influxdb
Execute o cliente do Influx em outro contêiner:
$ docker run --rm --link=influxdb -it influxdb influx -host influxdb
No momento, você não pode usar docker exec
para executar o cliente do Influx, pois docker exec
não alocará adequadamente um TTY. Isso se deve a um bug atual no Docker detalhado no Docker/Docker#8755.
A imagem do InfluxDB contém alguma funcionalidade extra para inicializar um banco de dados. Essas opções não são sugeridas para produção, mas são bastante úteis ao executar instâncias independentes para teste.
O script de inicialização do banco de dados só será chamado ao executar influxd
. Não será executado ao executar nenhum outro programa.
A imagem do InfluxDB usa várias variáveis de ambiente para configurar automaticamente certas partes do servidor. Eles podem ajudá -lo significativamente a usar esta imagem.
Inicializa automaticamente um banco de dados com o nome dessa variável de ambiente.
Ativa a autenticação. Ou isso deve ser definido ou auth-enabled = true
deve ser definido dentro do arquivo de configuração para qualquer opção relacionada à autenticação abaixo para funcionar.
O nome do usuário administrador a ser criado. Se isso não for definido, nenhum usuário administrador será criado.
A senha do usuário administrador configurou com INFLUXDB_ADMIN_USER
. Se não for definido, uma senha aleatória é gerada e impressa para o padrão.
O nome de um usuário a ser criado sem privilégios. Se INFLUXDB_DB
estiver definido, esse usuário receberá permissões de leitura e gravação para esse banco de dados.
A senha do usuário configurada com INFLUXDB_USER
. Se não for definido, uma senha aleatória é gerada e impressa para o padrão.
O nome de um usuário a ser criado com privilégios de leitura no INFLUXDB_DB
. Se INFLUXDB_DB
não estiver definido, esse usuário não terá permissões concedidas.
A senha do usuário configurada com INFLUXDB_READ_USER
. Se não for definido, uma senha aleatória é gerada e impressa para o padrão.
O nome de um usuário a ser criado com privilégios de gravação no INFLUXDB_DB
. Se INFLUXDB_DB
não estiver definido, esse usuário não terá permissões concedidas.
A senha do usuário configurada com INFLUXDB_WRITE_USER
. Se não for definido, uma senha aleatória é gerada e impressa para o padrão.
Se a imagem do Docker encontrar quaisquer arquivos com as extensões .sh
ou .iql
dentro da pasta /docker-entrypoint-initdb.d
, ele os executará. A ordem em que é executada é determinada pelo shell. Isso geralmente é ordem alfabética.
Para inicializar manualmente o banco de dados e a saída, o script /init-influxdb.sh
pode ser usado diretamente. Ele leva os mesmos parâmetros que o comando influxd run
. Como exemplo:
$ 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
O acima criaria o banco de dados db0
, criaria um usuário administrador com a senha supersecretpassword
e criaria o usuário telegraf
com a senha secreta do Telegraf. Em seguida, sairia e deixaria para trás quaisquer arquivos criados no volume que você montou.
As imagens influxdb
vêm em muitos sabores, cada um projetado para um caso de uso específico.
influxdb:<version>
Esta é a imagem defacto. Se você não tem certeza sobre quais são suas necessidades, provavelmente deseja usar este. Ele foi projetado para ser usado como um recipiente de fora (monte seu código -fonte e inicie o contêiner para iniciar seu aplicativo), bem como a base para construir outras imagens.
influxdb:alpine
Esta imagem é baseada no popular projeto Alpine Linux, disponível na imagem oficial alpine
. O alpino Linux é muito menor que a maioria das imagens da base de distribuição (~ 5 MB) e, portanto, leva a imagens muito mais finas em geral.
Essa variante é altamente recomendada quando o tamanho da imagem final é o menor possível. A principal advertência a ser observada é que ela usa Musl Libc em vez de Glibc e amigos; portanto, certos softwares podem ter problemas, dependendo da profundidade de seus requisitos da LIBC. No entanto, a maioria dos softwares não tem um problema com isso, então essa variante geralmente é uma escolha muito segura. Consulte este tópico de comentários de notícias de hackers para obter mais discussão sobre os problemas que podem surgir e algumas comparações profissionais do uso de imagens baseadas em alpinas.
Para minimizar o tamanho da imagem, é incomum que ferramentas relacionadas adicionais (como git
ou bash
) sejam incluídas em imagens baseadas em alpinas. Usando esta imagem como base, adicione as coisas que você precisa em seu próprio dockerfile (consulte a descrição da imagem alpine
para obter exemplos de como instalar pacotes se não estiver familiarizado).
Exibir informações de licença para o software contido nesta imagem.
Como em todas as imagens do Docker, elas provavelmente também contêm outro software que pode estar sob outras licenças (como Bash, etc. da distribuição base, juntamente com quaisquer dependências diretas ou indiretas do software primário que está sendo contido).
Algumas informações adicionais de licença que puderam ser detectadas auto-detectadas podem ser encontradas no diretório influxdb/
diretório do repositório repo-info
.
Quanto a qualquer uso de imagem pré-criado, é responsabilidade do usuário da imagem garantir que qualquer uso dessa imagem esteja em conformidade com quaisquer licenças relevantes para todo o software contido.