linux 具有公共IP地址的Docker网桥网络(与主机相同级别)

uinbv5nw  于 2022-11-22  发布在  Linux
关注(0)|答案(1)|浏览(104)

我正在尝试创建一个码头桥,它将分配容器公共IP,我希望在互联网上可解析。让我们假设192.168.33.0/24是一个公共CIDR。
网络配置如下:

sudo docker network create \
    --driver bridge \
    --subnet=192.168.33.0/24 \
    --gateway=192.168.33.10 \
    --opt "com.docker.network.bridge.name"="docker1" \
    shared_nw

容器命令

docker run --name container1 --net shared_nw --ip 192.168.33.11 -dt ubuntu

主机可以访问192.168.33.11容器和它的侦听端口,但外部的任何其他客户端都不能,这是有意义的,因为它是一个只支持主机的桥。
所以我做了以下的事情:

sudo brctl addif docker1 eth1

这使得容器可以从外部访问,但我的Docker主机不再可以通过任何类型的端口访问(例如:ssh)中。
有什么想法如何保持主机可达或有什么办法使码头桥从外面访问?

  • 谢谢-谢谢
8ulbf1ek

8ulbf1ek1#

似乎有另一个驱动程序可以做到这一点,称为macvlan。我所要做的就是将网络更改为:

sudo docker network create \
    --driver macvlan \
    --subnet=192.168.33.0/24 \
    --gateway=192.168.33.10 \
    --opt parent=ens18 shared_nw

相关问题