[英]Docker - Using macvlan network, attempting to publish port?
我目前有這樣設置的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網絡之間可能存在一些重疊,請嘗試為--subnet=10.10.140.0/24.
網絡使用其他子網,例如192.168.10.0/24
或--subnet=10.10.140.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
我可以從運行容器的主機以外的任何地方訪問此IP,但我不確定為什么。
這是macvlan網絡的命名空間功能,請參閱https://hicu.be/bridge-vs-macvlan
您的-p
選項的參數不正確,它僅以-p container_port:host_port
的形式使用端口號,因此您需要-p 4873:80
參見https://docs.docker.com/engine/reference/commandline/運行/#發布或暴露端口--p--暴露
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.