我目前有这样设置的docker macvlan:

docker network create -d macvlan --subnet=10.30.140.0/22 --gateway=10.30.143.254 -o parent=br0 NETNAME1

我想为该Docker容器提供一个IP,以便可以从公司内的任何地方访问它,因此当我尝试像这样运行Docker容器时:
docker run --net NETNAME1 -it --ip=10.30.141.43 -p 10.30.141.43:80:4873 --expose=80 verdaccio/verdaccio

我可以从运行容器的主机以外的任何地方访问此IP,但我不确定为什么。我还想使其主机端口为80,容器端口为4873。但是,仅当我的URL为http://10.30.141.43:4873时,我才能访问此端口

有什么理由不能将其重定向到80?

最佳答案

对于路由问题,主机网络和docker网络之间可能存在一些重叠,请尝试为docker网络使用其他子网,例如192.168.10.0/24或其他类似--subnet=10.10.140.0/24.的子网

对于端口映射,请从docker run删除多余的东西,然后执行-p 80:4873

docker run -d -net NETNAME1 80:4873 verdaccio/verdaccio

测试:

这些命令工作正常,我可以访问主机上的端口80。
docker network create -d macvlan --subnet=10.30.140.0/22 --gateway=10.30.143.254  NETNAME1
docker network ls
docker run -it --rm --net=NETNAME1 --name verdaccio -p 80:4873 verdaccio/verdaccio
docker ps

关于docker - Docker-使用macvlan网络,尝试发布端口吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52897638/

10-10 04:42
查看更多