LXCコンテナの起動クラッシュ後にネットワークインターフェイスをクリーンアップする方法

LXCコンテナの起動クラッシュ後にネットワークインターフェイスをクリーンアップする方法

今日私は追加の「バインドマウント」を追加するためにLXCコンテナを変更しましたが、コンテナのルートファイルシステムにマウントディレクトリを作成することを忘れました。

その結果、コンテナが起動せず、システムが奇妙な状態になります。

起動時にコンテナへの "veth" インターフェイスが作成され、システム "予測可能なインターフェイス名" 名 ensXfY の "phys" メソッドを使用して、コンテナにバインドした他のインターフェイスの名前をコンテナ名 eth1 に変更しました。

しかし、事故以来問題は解決されなかった。

したがって、根本的な問題が解決されたにもかかわらず、ホストネットワークが混乱しており、コンテナはまだ起動しません。

この問題は、LXCパッケージ2.0.11-0ubuntu1〜16.04.3を実行しているUbuntu 16.04で発生しましたが、他のLinuxディストリビューションの他のLXCバージョンにも影響する可能性があります。

答え1

これにより、古い「ベス」ペアと物理インターフェイスの名前が正しく指定されていない2つの別々の問題が発生します。

私はこの記事の一部を組み合わせてこの問題を解決しました。

https://stackoverflow.com/questions/31989426/how-to-identify-orphaned-veth-interfaces-and-how-to-delete-them

「veth」の質問とこの記事の場合:

CentOS 7 - 再起動なしでネットワークインターフェイスの名前を変更する

ネットワークインターフェイスの名前を変更するために使用されます。

私が使用した2つのコマンドは次のとおりです。

ip link delete vethXYZ
ip link set eth1 name ensXfY

実際の元の問題を解決し(マウントポイントディレクトリを作成して)、これらのコマンドを実行した後にコンテナを正しく起動できました。

関連情報