You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Docker Compose中配置等价于--net=host的host网络模式

嘿,这事儿很简单!你只需要在docker-compose.yaml里给每个服务加上network_mode: host配置,就能对应上Docker Run命令里的--net=host参数了。

下面是对应你那个Zookeeper容器的完整docker-compose.yaml示例:

version: '3'
services:
  zookeeper:
    image: confluentinc/cp-zookeeper:4.1.0
    container_name: zookeeper
    # 这里就是关键配置,和--net=host完全等价
    network_mode: host
    environment:
      ZOOKEEPER_CLIENT_PORT: 32181
      ZOOKEEPER_TICK_TIME: 2000

如果你的Compose文件里还有其他容器(比如Kafka、其他业务服务),只需要在每个服务的配置块里都加上network_mode: host,就能让所有容器都运行在宿主机的网络栈下啦。

👉 小提醒:用host网络模式的时候,不需要再配置ports映射了,因为容器会直接使用宿主机的网络端口(比如上面的32181端口会直接绑定到宿主机上),而且容器之间可以通过localhost互相访问,就像它们在宿主机上直接运行一样。另外要注意,这个模式在Linux系统上完全正常,但在Windows/Mac的Docker Desktop上可能会有一些功能限制(因为它们依赖虚拟机网络)。

内容的提问来源于stack exchange,提问作者Arshanvit

火山引擎 最新活动