将公共IP分配给Docker容器:VPS +多个IP,docker macvlan:没有互联网

问题描述

VPS,Ubuntu 20.04(云实例)
VPS具有2个公共IP映射到NIC(ens3)

最近几天,我试图为基于macvlan网络的docker容器分配一个公共IP。不知何故,我无法在Docker容器内部与外部网关建立Internet连接。无法ping或无法获得更新。

我已经添加了我遵循的步骤:

示例:
IP已映射到NIC(ens3)
IP 1: 12.14.28.245
IP 2: 12.14.28.246
网关:12.14.28.1

第1步:配置:01.netcfg.yaml

network:
  version: 2
  renderer: networkd
  ethernets:
    ens3:
      dhcp4: no
      dhcp6: yes
      addresses:
        - 12.14.28.245/24
        - 12.14.28.246/24
      gateway4: 12.14.28.1

步骤2:创建docker macvlan网络

docker network create --driver=macvlan --subnet=12.14.28.0/24-gateway=12.14.28.1 custom_net "-o parent=ens3

第3步:Docker运行

docker run -d --name $container_name --net=custom_net --ip=12.14.28.246 --dns=8.8.8.8 -itd--privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro jrei/systemd-ubuntu

步骤4:Docker网络检查custom_net

"Networks": {
                "custom_net": {
                    "IPAMConfig": {
                        "IPv4Address": "12.14.28.246"
                    },"Links": null,"Aliases": [
                        "973e66960fb8"
                    ],"NetworkID": "2e8bf527ec65f97191028cfca43750611b7ab47d752098dcd9c7d765b5022ed3","EndpointID": "d2cd7373b8c010495eefb9e3ef2189e7c8df204db174644e068082db58cee1f1","Gateway": "12.14.28.1","IPAddress": "12.14.28.246","IPPrefixLen": 24,"IPv6Gateway": "","GlobalIPv6Address": "","GlobalIPv6PrefixLen": 0,"MacAddress": "02:42:1f:0e:61:f6","DriverOpts": null

步骤5:docker exec -it $ container_name bash
ping google.com

但是我仍然无法从容器内部连接到互联网……。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)