如何在 wsl 2 上访问 docker 个容器

How to access docker containers on wsl 2

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

但是,当我在 docker 上部署相同的堆栈(通过 docker-compose.yml)时,我在 wsl 2 ubuntu 上安装了相同的堆栈 我无法使用 localhost/127.0.0.1:<已发布的 port/s> 访问 RabbitMq 和 Portainer 服务。从我用“docker 容器 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

好吧,原来我应该用的是eth0接口的ip。现在我可以访问 host/win.

的服务了

只需在 docker 容器中输入 ipconfig

(如果它 return“找不到命令”,您可以安装它:sudo apt install net-tools

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

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