Ao inspecionar as informações do meu contêiner Docker, vejo:
"HostConfig": {
"Binds": [
"/opt/myconfig:/run/db_config:rw"
],
Suspeito que isso funcione como volumes de montagem com:
-v mysql-data:/var/lib/mysql
Mas, preciso entender a diferença entre -v e qualquer cmd que criou os Binds. Qual cmd como -v poderia criar a entrada Binds?
-v ou --volume : Esta opção é usada pelos usuários no comando docker run para configurar uma montagem de ligação no momento da execução do contêiner, mapeando um caminho do host para um caminho do contêiner.
Binds em HostConfig : Isso só fica visível quando você inspeciona um contêiner, mostra as montagens de bind reais aplicadas ao contêiner conforme configurado por -v ou --mount ou --volume. Não é um comando, mas um registro da configuração de montagem. Ele é registrado como parte da construção da imagem do docker
Se resumirmos, -v criará a montagem, e o Binds a refletirá na configuração interna do Docker.
A
-v
opçãodocker run
pode mapear um volume do docker ou um diretório de host.Se o que você está mapeando for um diretório ou um arquivo, o docker cria um bind mount . Se não for, então o docker cria um volume mapping .
Por exemplo,
cria uma montagem de ligação, enquanto
cria uma montagem de volume.
Você também pode ser mais explícito usando a
--mount
opção em vez disso. Usar--mount
é recomendado, mas como é mais verboso, a maioria das pessoas usa a-v
opção.No seu exemplo, o que criou a montagem de ligação seria uma opção como esta
As montagens são de leitura/gravação por padrão, então não há razão para especificar isso.
Você pode ler mais aqui .