首页 > 解决方案 > 如何在 docker-compose 中将主机网络暴露给 docker 容器?

问题描述

好吧,问题很简单;--net=host执行时如何通过docker-compose

eclipse:
    build:
        context: .
        dockerfile: eclipse-dockerfile
    image: eclipse-docker:latest
    volumes:
        - "$HOME/.Xauthority:/root/.Xauthority:rw"
    networks:
        - "host"
    environment:
        - DISPLAY=$DISPLAY

显然不起作用

标签: dockerdocker-compose

解决方案


您可以使用network_mode: "host"

在本文发表时,主机网络驱动程序仅适用于 Linux 主机,不支持用于 Mac 的 Docker Desktop、用于 Windows 的 Docker Desktop 或用于 Windows Server 的 Docker EE。


这是一个快速演示:

码头工人-compose.yml

version: '3'
services:
  web-svc-in-host-net:
    image: nginx
    network_mode: "host"

组成:

docker-compose up -d

在 localhost 上访问 nginx(nginx 映像默认侦听端口 80 - 因此无需在 curl 示例中指定端口):

curl localhost
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
[...]
</body>
</html>

推荐阅读