簡體   English   中英

Docker-使用macvlan網絡,嘗試發布端口嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM