这是一个较老的问题,但我决定回答它,因为我被困在同一个主题上并且解决方案并不十分明显。
如果您希望您的容器从外部设备(例如互联网路由器、公司 dhcp 服务器)获取其 ip 配置,您需要在创建时告诉它。这是通过配置参数对完成的,user.network_mode=dhcp
因为此配置在“用户”空间中,因此不是规范的,但适用于 ubuntu 16.04。详情见:https ://github.com/lxc/lxd/blob/master/doc/configuration.md
第一步:在主机上创建网桥/etc/network/interfaces
auto br0
iface br0 inet dhcp
bridge_ports ens32
bridge_stp off
bridge_fd 0
第 2 步:创建您自己的名为 mydhcp 的 lxd 配置文件
lxd profile create mydhcp
或通过调用重新配置您的默认 lxd 配置
sudo dpkg-reconfigure -p medium lxd
(您需要在第一个提示处选择并在第二个提示处添加,然后输入您的网桥名称)
如果您使用自己的个人资料,请对其进行编辑
lxc profile edit mydhcp
粘贴以下内容
name: mydhcp
config:
user.network_mode: dhcp
description: Profile for creating dhcp containers
devices:
eth0:
name: eth0
nictype: bridged
parent: br0
type: nic
(注意空格 - 这是一个 YAML 文件,空格很重要!)
第 3 步:使用您的 mydhcp 配置文件创建一个新容器
lxc launch ubuntu:16.04 mydhcpcontainer -p mydhcp -c user.network_mode=dhcp
如果您在上一步更改了默认 lxd 配置,则只需输入
lxc launch ubuntu:16.04 mydhcpcontainer -c user.network_mode=dhcp
检查新容器的 IP 地址
lxc exec mydhcpcontainer -- ifconfig