如何在 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 时遇到了问题,并且在使用它之后设法做到了
我在 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 时遇到了问题,并且在使用它之后设法做到了