我目前有这样设置的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/