Запуск Docker в Docker: доступ к томам из родительского Docker

Хорошо, мы можем запустить Docker в Docker. С этим много проблем. См. Этот пост. Поэтому рекомендуется использовать Docker для хостов для запуска дочерних контейнеров, как описано в разделе «Решение». Таким образом, они не являются дочерними элементами контейнера докеров, а являются потомками хоста. Таким образом, они являются братьями и сестрами родительского контейнера докеров. Я сделал это, но теперь все пути не работают так, как предполагалось вначале.

Например, в первом контейнере Docker я использую том. Во втором контейнере Docker я использую другой том в первом томе. Теперь второй контейнер не использует путь относительно первого контейнера. Поскольку все контейнеры работают в одном экземпляре Docker непосредственно на хосте, они используют пути, относящиеся к этому хосту.

  • Рабочий каталог хостов: / home / user / theDockerThing
  • Том в первом контейнере: .: / Var / mydata
  • В первом контейнере рабочий каталог / var / mydata / someproject
  • Том во втором контейнере: .: / var / www / html

Мне нужен каталог с хоста: / home / user / theDockerThing / someproject привязка смонтирована во второй контейнер в / var / www / html

Но в / var / www / html я получаю / var / mydata / someproject , где ничего нет.

Я не хочу редактировать конфигурацию второго докера, так как этот докер также должен работать непосредственно на другом хосте.

Как указать второму контейнеру докера использовать первые тома, чтобы сделать его более похожим на настоящий Docker-in-Docker?

0
30.11.2017, 21:53
1 ответ

Поскольку все контейнеры работают на одном и том же демоне docker, вы не можете сопоставить тома dind первого уровня. Вы должны сопоставить тома с путями хоста.

Дайте объемы второго уровня не как -v /var/mydata/someproject:/var/mydata, а как-v /home/user/theDockerThing/someproject:/var/mydata

1
28.01.2020, 04:37

Теги

Похожие вопросы