社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

在不使用IP的情况下从主机与docker内的服务通信

Musmus • 5 年前 • 1344 次点击  

我有一个进程在一个主机上运行,需要和一个docker通信,我希望这个进程通过一些参数来完成,这些参数不能改变(比如docker name或者host name),不像IP(不希望docker的IP是静态的,或者为此安装外部docker)。

我知道dockers可以在私有网络中按名称解析收件人,这是我想要的,但不是dockers之间,而是主机上运行的进程和docker之间。

找不到解决办法,可以吗?

编辑:

出于安全原因,我不允许使用主机网络并在主机上打开其他端口。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/51586
 
1344 次点击  
文章 [ 1 ]  |  最新文章 5 年前
grapes
Reply   •   1 楼
grapes    6 年前

欢迎您选择更适合您需要的方式。

选择1。使用主机的网络。在这种情况下,Docker不会为container创建单独的网络,而您可以连接到container的服务,就像它们将在您的主机上运行一样:

docker run --network=host <image_name>

这种方法的缺点是隔离度低,因而安全。您不需要在这里公开任何端口-如果服务监听 8080 ,打开 localhost:8080 好好享受吧。

第二种方法更为正确——在容器中公开(以某种方式转发)内部端口,并将它们映射到主机中的端口。

docker run -p 8080:80 <image_name>

这将映射端口 80 从集装箱到港口 8080个 在主机上。与前面的示例一样,仍然使用 localhost ,例如。 本地主机:8080 .