Docker in Dockerでボリュームをマウントできない
質問
Jenkinsのクラスタを運用していますが、マスターとスレーブの両方がDockerコンテナとして動作しています。
ホストは、MacOS上で動作する最新のboot2docker VMです。
JenkinsがDockerを使ってデプロイできるように、ホストからJenkinsコンテナにdocker.sockとdockerクライアントを以下のようにマウントしています:-)
docker run -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -v $HOST_JENKINS_DATA_DIRECTORY/jenkins_data:/var/jenkins_home -v $HOST_SSH_KEYS_DIRECTORY/.ssh/:/var/jenkins_home/.ssh/ -p 8080:8080 jenkins
Jenkinsコンテナ内で実行されるDockerコンテナにボリュームをマウントする際に、問題に直面しています。例えば、私がJenkinsコンテナ内で別のコンテナを実行する必要がある場合、私は次のようにします:-)
sudo docker run -v $JENKINS_CONTAINER/deploy.json:/root/deploy.json $CONTAINER_REPO/$CONTAINER_IMAGE
上記でコンテナは実行されますが、ファイル "deploy.json" はファイルとしてマウントされておらず、代わりに "Directory" としてマウントされています。ディレクトリをボリュームとしてマウントしても、結果のコンテナ内のファイルを表示することはできません。
これは、Docker の場合の Docker によるファイルのパーミッションの問題なのでしょうか。
どのように解決するのですか?
Docker コンテナ内の Docker コンテナは親 HOST の Docker デーモンを使用するため、"docker-in-docker" のケースでマウントされたボリュームは、コンテナからではなく、依然として HOST から参照されることになります。
したがって、Jenkins コンテナからマウントされた実際のパスは、HOST に "存在しません"。このため、空の "docker-in-docker" コンテナ内に新しいディレクトリが作成されます。Container内の新しいDockerコンテナにディレクトリがマウントされた場合も同様です。
非常に基本的で明白なことですが、私は見逃していましたが、質問をタイプしてすぐに気づきました。
関連
-
deepin linuxからmacosx仮想マシンに直接ファイルをドラッグ&ドロップする方法は?
-
[解決済み】エラー "入力デバイスはTTYではありません"
-
[解決済み] Docker Dockerコンテナからホストへのファイルコピー
-
[解決済み] 既存のDockerコンテナにボリュームを追加するにはどうすればよいですか?
-
[解決済み] ボリュームに単一ファイルをマウントする方法
-
[解決済み] dockerコンテナ内でsudoを使用するには?
-
[解決済み】Dockerは仮想マシンとどう違うの?
-
[解決済み】Dockerコンテナからホストポートにアクセスする方法
-
[解決済み】dockerの内部からdockerを実行しても大丈夫ですか?
-
[解決済み】Dockerにボリュームを追加しても、サブフォルダを除外してしまう。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
LinuxでSteamをダウンロードしインストールする方法
-
deepin20にフォントを追加する方法は?deepin20にフォントをインストールする方法は?
-
virtualboxが仮想マシンを開けない場合は?linuxがvirtualboxにアクセスできない時の解決策
-
Vmware 16仮想マシンを開けない場合、ファイルをローカルにコピーする方法は?
-
中国版「浮世」を含むUbuntu 20.04.2リリース
-
Linux Mintシステムでプログラムをアンインストールするには? Linux で不要なアプリケーションをアンインストールするためのヒント
-
GCCのバージョンによる浮動小数点演算の例外発生
-
Apache の一般的な設定エラー
-
[解決済み] Linuxでデータファイルから最初の列(実際には行名)を削除する方法は?
-
[解決済み] Bashスクリプトでカレントディレクトリ名(フルパスなし)を取得する