1

我在 wsl 2 上运行 Ubuntu 20.04 LTS。我已经根据本指南https://docs.docker.com/engine/install/ubuntu/安装了 docker 。我有一个包含少量服务的堆栈(基本上我想在推送到 prod 之前设置一个环境来测试我的服务),堆栈在生产中按预期运行,上面运行着 portainer 和 RabbitMq,它们可以在网络上访问.

但是,当我在安装在 wsl 2 上的 ubuntu 上的 docker 上部署相同的堆栈(通过 docker-compose.yml)时,我无法使用 localhost/127.0.0.1 访问 RabbitMq 和 Portainer 服务:<发布的端口/s>。从我看到的“docker container ls”来看,容器运行稳定。

我试图在防火墙中设置入站规则 - 不走运。

这是来自 docker-compose.yml 的整个服务设置:

  rabbitmq:
    image: rabbitmq:3-management
    logging:
      driver: "json-file"
      options:
        max-file: 3
        max-size: 5m
    hostname: rabbitmq
    deploy:
      resources:
        limits:
          memory: 200M
        reservations:
          memory: 199M
    ports:
      - 15672:15672
      - 5672:5672
    env_file:
      - .env
    networks:
      - webnet
4

2 回答 2

10

好吧,事实证明我应该使用 eth0 接口的 ip。现在我可以从主机/win 访问服务。

在此处输入图像描述

于 2020-07-13T07:53:24.473 回答
1

您也可以尝试使用此脚本https://gist.github.com/xmeng1/aae4b223e9ccc089911ee764928f5486将 wsl 端口公开给 Windows

我在通过 ssh 连接到 wsl 时遇到了麻烦,并且在使用它后设法做到了

于 2020-11-18T08:29:40.447 回答