私は現在コンテナに取り組んでおり、ネットワークのDHCPを使用するようにコンテナを設定するのに問題があるため、ホスト名(コンテナ名)から直接アクセスできます。これは、他のデバイスのアプリがコンテナのサービスにアクセスできることを意味します。コンテナにSSHで接続する場合、まずホストにSSHで接続する必要はなく、lxc exec [containername] bashを使用します。
Ubuntu 16.04コンテナーの作成に成功しましたが、うまく動作します。 lxd init(10.0.1。*)を使用したときに最初に構成されたIP範囲内で実行されますが、メインネットワークのIP範囲とDHCPを使用するようにしたいのです。
/ etc/network/interfacesファイルに次を追加して、これを行うことができました。
auto br0
iface br0 inet static
address 192.168.1.64
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.0.255
gateway 192.168.1.1
dns-nameservers 192.168.1.254
bridge_ports enp3s0
iface enp3s0 inet manual
ネットワークサービスをリロードした後、これは正常に機能し、コンテナはネットワーク上で確認でき、その逆も可能です。ただし、ホストは代わりにインターネットへのアクセスを失い、ネットワーク上の他のデバイスを認識できなくなりました。
変更を元に戻すと、ホストマシンは再びネットワークにアクセスできるようになりましたが、コンテナは元のIP範囲に戻り、ネットワークが見えなくなりました。
私はさらにいじくり回しましたが、成功しませんでしたので、私はホストがインターネットを持ち、現在コンテナが見えない状態に戻っています。これは私が望むものではありません。
誰が私が間違っていたかもしれない場所に関するさらなる洞察を提供できますか?まったく違うことをすべきですか?
前もって感謝します。
最後に、それを修正するように思われた唯一の事柄は、OSの新規インストールでした。現在、Ubuntu 17.10を実行しています。アップグレードするのではなく、新しくインストールしました(ただし、必要に応じて古いインストールのイメージを作成しました)。
/ etc/network/interfacesファイルについては、次のように簡単でした。
auto br0
iface br0 inet dhcp
bridge_ports enp3s0
iface enp3s0 inet manual
Lxdプロファイルに関しては、次のように構成されています。
config: {}
description: Default LXD profile
devices:
eth0:
name: eth0
nictype: bridged
parent: br0
type: nic
name: default
16.04.3 LTSでの動作を拒否した理由は確かではありませんが、少なくとも17.10で動作しています。
とにかく助けてくれてありがとう!
それはすべて一緒に書き留められているので、私のセットアップでは、すべてのコンテナとそのホストマシンが同じDHCPサーバー(ルーター)からIPを取得し、すべてLAN経由で利用できます。
Ubuntu Server 16.04ホストでは、/etc/network/interfaces
は次のようになります。
iface br0 inet dhcp
bridge_ports eth0
iface eth0 inet manual
コメントで述べたように、再起動後、ホストのネットワークが意図したとおりに動作するようになったら、Sudo dpkg-reconfigure -p medium lxd
を使用してLXDのネットワークを(特に)再構成できると思います。
lxd init
を実行したとき、yes
にDo you want to configure the LXD bridge (yes/no)?
に応答し、<No>
にネットワークブリッジのセットアップを要求したときに<Yes>
を使用したい既存のもの、およびbr0
はブリッジ名として。
最後に、DHCPサーバー(ルーター)の設定で、MACに依存して静的IPを任意のマシン(ホストおよびいくつかのコンテナーを含む)に割り当てます。これにより、コンテナとホストの設定が簡素化されます。