仮想マシン
 Computer >> コンピューター >  >> ソフトウェア >> 仮想マシン

LXD と Docker コンテナのネスト - チュートリアル

アルケイン ウィークリーへようこそ。今日は、遭遇する可能性が低い問題についてお話ししたいと思います。手元にあるツール:LXD コンテナー、Docker。当面の使命:2 つを同時に実行する必要があります。具体的には、LXD コンテナーを生成し、その中で Docker コンテナーを開始します。なんで?

次に、あなたが抱えている問題は次のとおりです。 Docker の実行は次のエラーで失敗します:docker:Error response from daemon:OCI runtime create failed:container_linux.go:367:starting container process occured:process_linux.go:495:container init occured:rootfs_linux.go:60:Mounting " "/proc" の rootfs への "proc" が原因:許可が拒否されました:不明。そこにはたくさんのテキストがあります。これをデバッグしましょうか?

問題の詳細

通常、Docker コンテナーを実行する場合、/proc へのアクセスに問題はありません。しかし、上記のエラーは、これが実行できないことを示しています。多くの情報が含まれているため、誤解を招くようなトレイルが作成されるため、かなり紛らわしいメッセージです。確かに、問題が発生する理由はたくさんあります。私の場合、セットアップはまったく新しいバニラで、クレイジーなカスタマイズは一切ありませんでした。その他のエラーはなく、実用上、Docker は正しくインストールおよび構成されています。

次に、LXD がどのように機能するかを調べて、この問題が発生した理由をよりよく理解することができるのではないかと考えました。実際、状況を説明する LXD に関する古い、半文書化された記事をすぐに見つけました。セキュリティ上の理由から、コンテナーは安全でない方法で /proc および /sys にアクセスすることは許可されていません。関連するセキュリティへの影響を伴うこの回避策は、そのようなアクセスを許可することです。

解決策

必要なことは、影響を受けるコンテナーのネストを許可することです。

lxc launch "image" "container name" -c security.nesting=true

コンテナーが存在する場合は、開始する前に:

lxc config set "container name" security.nesting true

そしてコンテナを起動します:

lxc start "コンテナ名"

既に実行されている場合は、コンテナーを停止し、ポリシーを設定してから、もう一度開始します。この操作は非破壊的であるため、コンテナーを既に生成した後にのみ問題が発生した場合でも、コンテナー内の作業やデータが失われることはありません。設定もフルリバーシブルです。そして、私たちの仕事はここで終わりです。

結論

興味深いことに、5 年ほど前から存在していた問題に今やっと遭遇しました。または、非常に多くの人がこの問題に直面しているにもかかわらず、情報が不足して散らばっていること.ネストされたコンテナを使用する場合は、影響を受けるコンテナのセキュリティ ポリシーを LXD で編集する必要があります。これは比較的単純なトリックです。もちろん、特権コンテナーと非特権コンテナーの概念、およびその他のセキュリティに関する考慮事項など、それ以上のものがあります。しかし、あなたの仕事がセキュリティに関するものでなければ、この変更にマイナス面はありません。

より良いドキュメントが役立ちます。不可解なエラーメッセージも少なくなります。その間、あなたのセットアップで、あなたがやろうとしていることに対してパーミッションエラーが発生する可能性がある理由を考えてみてください.これはあなたを正しい方向に導くはずです.問題文の構成方法がわかれば、80% 完了です。これで、コンテナ全体をコンテナ内で実行できるようになりました。Yo Dawn、私はコンテナが好きなので、コンテナをコンテナに入れます... Inception。おまけ:宇宙が内破するまでに何レベルのネスティングができるか試してみてください。

乾杯。


  1. VirtualBox &NAT ネットワーク構成のチュートリアル

    数日前、私は興味深い問題にぶつかりました。まあ、VirtualBox に対する私の好みをさらに強めた、より一種の運用上の課題です。つまり、いくつかの仮想マシンで小さなプライベート ネットワークをセットアップしたかったのです。 1 台のマシンはサーバーになり、他のマシンはエージェント ソフトウェアを実行してサーバーに報告するクライアントになります。シンプルに聞こえます。ただし、NAT を適用したすべてのマシンが同じ IP アドレス 10.0.2.15 を取得していました。 実際、最も基本的な VM セットアップを使用している場合、マシンは 1 つの NAT アダプターを使用しており、並列で実行

  2. VirtualBox でディスクのクローンを作成する方法 - チュートリアル

    ビジネスまたは娯楽で仮想化を使用している場合、VirtualBox に出くわしたことがあるかもしれません。VirtualBox は非常に強力で汎用性の高い無料のソリューションであり、デスクトップ ユーザーがオペレーティング システムを導入する際に非常に柔軟に対応できます。 また、マニアックな趣味で仮想化を楽しんでいるだけの愛好家や、仮想化のおかげで新しいオペレーティング システムの使い方を学んでいる熱心なソフトウェア愛好家以上の場合は、次のシナリオに遭遇することになります。多数の仮想マシンを展開します。 個々のインストールをいじる時間はありません。実際、マシンを 1 つずつ手動で構成す