Execução do Docker no Docker: Acesse volumes do Docker pai

0

OK, podemos executar o Docker no Docker. Existem muitos problemas com isso. Veja este post. Então é aconselhável usar hosts Docker para executar recipientes filho conforme descrito em solução. Portanto, eles não são filhos do contêiner docker, mas do host. Então, eles são irmãos do contêiner docker pai. Eu fiz isso, mas agora todos os pathes não estão funcionando como assumido no início.

Por exemplo, no primeiro contêiner do Docker, eu uso um volume. No segundo contêiner do Docker, eu uso outro volume no primeiro volume. Agora, o segundo contêiner não usa um caminho relativo ao primeiro contêiner. Como todos os contêineres são executados na mesma instância do Docker diretamente no host, eles usam os valores relativos a esse host.

  • O diretório de trabalho dos hosts é / home / user / theDockerThing
  • Volume no primeiro contêiner: .: / var / mydata
  • No primeiro container, o diretório de trabalho é / var / mydata / someproject
  • Volume no segundo container: .: / var / www / html

O que eu quero é o diretório do host: / home / user / theDockerThing / someproject bind montado no segundo container para / var / www / html

Mas em / var / www / html recebo / var / mydata / someproject onde não há nada.

Eu não quero editar a segunda configuração dos estivadores, pois essa janela de encaixe também deve ser executada diretamente em outro host.

Como dizer ao segundo contêiner do Docker para usar os primeiros volumes para torná-lo mais parecido com um Docker-in-Docker real?

    
por Michael 19.10.2017 / 13:00

1 resposta

0

Como todos os contêineres são executados no mesmo daemon do docker, não é possível mapear os volumes do primeiro nível dind. Você deve mapear volumes com os caminhos do host.

Forneça volumes no segundo nível dind não como -v /var/mydata/someproject:/var/mydata , mas como -v /home/user/theDockerThing/someproject:/var/mydata

    
por 27.06.2018 / 08:55

Tags