如何在WSL 2上访问Docker容器

时间:2020-07-06 09:38:54

标签: docker ubuntu-20.04 wsl-2

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

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

2 个答案:

答案 0 :(得分:4)

好吧,事实证明我应该使用eth0接口的ip。现在,我可以通过主持人/获胜者访问服务。

enter image description here

答案 1 :(得分:1)

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

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