[解決済み】dockerの内部からdockerを実行しても大丈夫ですか?
質問
Dockerコンテナ内でJenkinsを動かしています。JenkinsコンテナがDockerホストでもいいのでしょうか?私が考えているのは、Jenkins内部から統合テストを構築するごとに新しいDockerコンテナを開始することです(データベース、メッセージブローカーなどを開始するため)。したがって、統合テストが完了した後、コンテナはシャットダウンされる必要があります。この方法で、別のDockerコンテナ内部からDockerコンテナを実行しない理由はありますか?
解決方法は?
Dockerの中でDockerを実行する(a.k.a. ディンド ) は、可能ではありますが、可能な限り避けるべきでしょう。(その代わり、メインコンテナから 兄弟 コンテナです。
Jérôme Petazzoni(ジェローム・ペタゾーニ - DockerをDockerコンテナの中で実行できるようにした機能の作者は、実際に次のように書いています。 というブログ記事があります。 . 彼が説明するユースケースは、他のDockerコンテナ内でジョブを実行する必要があるCI DockerコンテナというOPのユースケースと正確に一致します。
ペタゾーニ氏は、dindが厄介な理由を2つ挙げています。
- Linux Security Modules (LSM)との連携がうまくいかない。
- ファイルシステムにミスマッチが生じ、親コンテナの中に作成されたコンテナに問題が発生します。
そのブログ記事から、次のような代替案を説明しています。
[最もシンプルな方法は、DockerソケットをCIコンテナに公開することです。
-v
フラグを使用します。簡単に言うと、CIコンテナ(Jenkinsなど)を起動するときに、Docker-in-Dockerで何かをハックするのではなく、Docker-in-Dockerで起動するのです。
docker run -v /var/run/docker.sock:/var/run/docker.sock ...
これで、このコンテナはDockerソケットにアクセスできるようになり、コンテナを起動できるようになります。ただし、quot;child"コンテナを起動するのではなく、quot;sibling"コンテナを起動することになります。
関連
-
[解決済み] Dockerコンテナの中から、マシンのローカルホストに接続するにはどうすればよいですか?
-
[解決済み] Docker Dockerコンテナからホストへのファイルコピー
-
[解決済み] ホストからDockerコンテナにファイルをコピーする方法は?
-
[解決済み] リポジトリを使用せずに、あるホストから別のホストにDockerイメージをコピーする方法
-
[解決済み] ホストからDockerコンテナのIPアドレスを取得する方法
-
[解決済み] Dockerでデータベースなどの永続的なストレージを扱う方法
-
[解決済み] 既に起動しているDockerコンテナに新しいTTYで入る方法
-
[解決済み】Dockerは仮想マシンとどう違うの?
-
[解決済み】Dockerコンテナからホストポートにアクセスする方法
-
[解決済み】DockerFileの "VOLUME "命令を理解する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] DockerfileでRUN mkdirを実行できない
-
[解決済み] 不明な機関によって署名された "docker pull "証明書
-
[解決済み] docker-compose.ymlでコンテナをrootで立ち上げる設定方法
-
[解決済み] Dockerです。unix:///var/run/docker.sock にある Docker デーモン ソケットに接続しようとしたときに、パーミッションが拒否されました。
-
[解決済み】Dockerイメージとコンテナの違いは何ですか?
-
[解決済み】Dockerのプロセスへのアタッチとデタッチはどうやるの?
-
[解決済み】Dockerコンテナでボリュームをリストアップする方法は?
-
[解決済み】Dockerfileの複数RUNと1つの連鎖RUN、どっちがいい?
-
[解決済み】Docker: プロジェクトに複数のDockerfileが存在する
-
[解決済み】dangling imageとunused imageとは何ですか?