Docker内でDockerを実行する:親Dockerのボリュームにアクセスする

Docker内でDockerを実行する:親Dockerのボリュームにアクセスする

いいですね。 DockerでDockerを実行できます。多くの問題があります。この記事を参照してください。したがって、ソリューションの説明に従って、ホストDockerを使用してサブコンテナを実行することをお勧めします。したがって、ドッカーコンテナのサブコンテナではなくホストシステムから出てきます。したがって、これらは親ドッカーコンテナの兄弟です。そうしましたが、もともと期待どおりに機能するルートはありません。

たとえば、最初のDockerコンテナはボリュームを使用します。 2 番目の Docker コンテナでは、最初のボリューム内の他のボリュームを使用します。 2番目のコンテナは、最初のコンテナに基づいたパスを使用しません。すべてのコンテナはホストの同じDockerインスタンスで直接実行されるため、ホストに基づくパスを使用します。

  • ホスト作業ディレクトリは次のとおりです。/ホーム/ユーザー/theDockerThing
  • 最初の容器の容積:.:/var/mydata
  • 最初のコンテナでは、作業ディレクトリは次のとおりです。/var/mydata/someproject
  • 2番目の容器の容積:.:/var/www/html

私が望むのはホストのディレクトリです。/home/user/theDockerThing/someprojectマウントを2番目のコンテナにバインドする/var/www/html

しかし、/var/www/htmlわかりました。/var/mydata/someprojectどこにも何もありません。

そのドッカーは他のホストでも直接実行する必要があるため、2番目のドッカー設定を編集したくありません。

2番目のDockerコンテナに最初のボリュームを使用するように指示して、実際のDocker-in-Dockerに似ているようにするにはどうすればよいですか?

ベストアンサー1

すべてのコンテナは実際には同じdockerデーモンで実行されるため、最初のレベルdindのボリュームをマップすることはできません。ボリュームをホストパスにマッピングする必要があります。

2 番目のレベルのボリュームは-v /var/mydata/someproject:/var/mydata次のように提供されません。-v /home/user/theDockerThing/someproject:/var/mydata

おすすめ記事