いいですね。 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