小编Pay*_*ian的帖子

启用从 docker 容器通过 ubuntu 防火墙访问主机服务

我有一个服务在端口 的主机上运行8545。我有几个需要访问主机上的此服务的 docker 容器。主机运行的是ubuntu。我已经配置成功了

extra_hosts:
- "host.docker.internal:host-gateway"
Run Code Online (Sandbox Code Playgroud)

在 docker-compose 文件中,我用它来启动我的 docker 容器。但是,我发现容器无法访问host.docker.internal:8545,除非我使用以下命令打开主机上的该端口

ufw allow 8545
Run Code Online (Sandbox Code Playgroud)

然而,这会向任何人开放该端口,这是不希望的。

如何向主机上运行的 docker 容器开放此端口?

编辑:我已经看到该docker0接口的 IP 为172.17.0.1. 我尝试运行sudo ufw allow from 172.17.0.1,但这并没有使我的容器能够访问8545主机上的端口。

root@localhost:~/code/metis/ops# ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
Anywhere                   ALLOW       172.17.0.1
22/tcp (v6)                ALLOW       Anywhere (v6)

root@localhost:~/code/metis/ops# docker exec -it ops_l2geth-mainnet_1 /bin/sh
/ # geth attach http://host.docker.internal:8545
Fatal: Failed to start the JavaScript …
Run Code Online (Sandbox Code Playgroud)

firewall ufw ubuntu docker

7
推荐指数
1
解决办法
6800
查看次数

标签 统计

docker ×1

firewall ×1

ubuntu ×1

ufw ×1