Ao iniciar um aplicativo de composição do docker, ele cria um volume nomeado na primeira vez e, em seguida, volumes adicionais cada vez que é iniciado. Esse é o comportamento normal em que ele cria volumes incrementais ou meu arquivo de composição de encaixe está quebrado? Além disso, após a execução docker volume prune
, ele removeu dois dos volumes não nomeados
Esta é a saída após iniciá-lo duas vezes:
DRIVER VOLUME NAME
local 2b33c81e6e955ff36061f4120b7181c7efc7aebded2f87eaa7290027f1e7a725
local 74301eadc75018d6f7da76aec44bcf743e03261492cfcc33211941684a570030
local c42b1e2c17342c52b4b9e90f4d4b7fa24ccb30de5479e65cf4366e2373dfb0bf
local dcfa63dbf99362fc92fe3b981f50abebfe1bba03063d4dd9dd790f4c058817cf
local dockerinfluxdbgrafana_grafana-data
local dockerinfluxdbgrafana_influxdb-data
E para referência, meu arquivo docker-compose
version: "3"
services:
influxdb:
image: influxdb:latest
container_name: influxdb
ports:
- "8086:8086"
env_file:
- 'env.influxdb'
networks:
- backend
volumes:
- influxdb-data:/var/lib/influxdb
grafana:
image: grafana/grafana:latest
container_name: grafana
ports:
- "3000:3000"
env_file:
- 'env.grafana'
- 'secrets.grafana'
networks:
- backend
volumes:
- grafana-data:/var/lib/grafana
networks:
backend:
volumes:
influxdb-data:
grafana-data:
Passos para reproduzir
docker-compose up -d && docker-compose down && docker-compose up -d && docker-compose down && docker-compose up -d && docker-compose down
docker
docker-compose
Moritz
fonte
fonte
docker-compose up -d && docker-compose down && docker-compose up -d && docker-compose down && docker-compose up -d && docker-compose down
Respostas:
A pesquisa indicou que os volumes anônimos foram criados por
influxdb
egrafana/grafana
.Resultados
resulta em:
e sempre que
docker-compose down
subseqüênciaup
é executada, o número de volumes anônimos dobra.O que acontecerá se o nginx for extraído em vez do influxdb e grafana?
e depois
docker-compose down && docker-compose up -d
?Parece que certas imagens criaram os volumes anônimos adicionais. Vamos substituir o influxdb pelo nginx e usar grafana.
Sempre que a composição do docker foi executada novamente, três volumes anônimos foram criados pelo
grafana/grafana
imagem docker. Vamos substituir o influxdb pelo nginx e reverter o grafana para o nginx:e permanece dois se reiniciado.
Parece que a grafana está causando o problema.
Por que três novos volumes anônimos são criados sempre que o grafana / grafana é reiniciado?
O arquivo de encaixe grafana / grafana indica que três volumes anônimos serão criados:
https://docs.docker.com/engine/reference/builder/#volume
docker volume inspect <volume name, e.g. 34cfafd4603dbc7e71a83e2520f978c8307b084143b3192de65a1995dc1d2f86>
retornou dados grafana quando o caminho retornado foi verificado em dois dos três volumes anônimos:e
fonte
Verifique os volumes definidos em
Dockerfile
com oVOLUME
instrução.Se você não deseja que o volume com nomes aleatórios seja criado automaticamente, é possível fornecer um caminho do host a ser montado no bind, verifique as opções
-v
ou--mount
, https://docs.docker.com/engine/admin/volumes / volumes / # escolha o sinalizador v ou mountPor exemplo:
fonte
Se mais alguém estiver descendo por essa toca de coelho. Certifique-se de que você não acidentalmente definir o seu volume com um
=
na suaDockerfile
Errado:
Corrigir:
Levei muito tempo para descobrir por que os volumes anônimos estavam sendo adicionados por
docker-compose
fonte