[英]How to connect to Docker service UI via LAN on local network
我是 Docker 的新手,正在尝试启动并运行 Nginx 代理管理器。
到目前为止,我有一个 docker-compose.yml 看起来像(基于我正在关注的教程):
version: "3.9"
networks:
default:
driver: bridge
npm_proxy:
name: npm_proxy
driver: bridge
ipam:
config:
- subnet: 192.168.89.0/24
x-common-keys-core: &common-keys-core
networks:
- npm_proxy
security_opt:
- no-new-privileges:true
restart: always
services:
npm:
<<: *common-keys-core
container_name: nginx-proxy-manager
image: 'jc21/nginx-proxy-manager:latest'
networks:
npm_proxy:
ipv4_address: 192.168.89.254
ports:
- '80:80'
- '443:443'
- '81:81'
volumes:
- $DOCKERDIR/appdata/npm/config:/config
- $DOCKERDIR/appdata/npm/letsencrypt:/etc/letsencrypt
- $DOCKERDIR/appdata/npm/data:/data
environment:
DB_SQLITE_FILE: "/config/database.sqlite"
DISABLE_IPV6: 'true'
到目前为止这是有效的,我可以访问主机上的 Nginx 代理管理器(运行 Ubuntu 的 NUC 通过 LAN 连接到我的路由器)。
但是,我认为在我的 local.network(Windows PC 通过 LAN 连接到同一路由器)上的另一台机器上访问相同的 UI 会很简单。
对于我的生活,我似乎无法调出另一台计算机上的用户界面。 我刚刚在我的浏览器中收到超时错误。
我努力了:
有谁知道如何在同一网络上的另一台本地 PC 上访问 Docker 服务的 UI。 我不需要为此进行端口转发,因为它是本地的,对吗?
似乎我所要做的就是通过ufw allow 81
在我的 UFW 中公开端口。 一旦公开,我就可以从我的 local.network 中的任何设备访问 UI。
正如@DavidMaze 所指出的,为 Docker 容器指定 static IP 似乎不是很有用。 似乎最好的做法是使用默认的 Docker.networking,为不同的容器指定不同的端口,并确保这些端口可以通过 UFW 访问。 因为我没有在我的路由器上进行端口转发,所以它们应该只能从我的 local.network 访问。
我还是有点好奇什么时候桥会有用。 似乎甚至有一个网桥 Docker 将 bridge.network 连接到 host.network。 所以我想知道重点是什么......我一定会阅读一些文档。
这是我更新的 YAML:
version: "3.9"
x-common-keys-core: &common-keys-core
security_opt:
- no-new-privileges:true
restart: always
services:
npm:
<<: *common-keys-core
container_name: nginx-proxy-manager
image: 'jc21/nginx-proxy-manager:latest'
ports:
- '80:80'
- '443:443'
- '81:81'
volumes:
- $DOCKERDIR/appdata/npm/config:/config
- $DOCKERDIR/appdata/npm/letsencrypt:/etc/letsencrypt
- $DOCKERDIR/appdata/npm/data:/data
environment:
DB_SQLITE_FILE: "/config/database.sqlite"
DISABLE_IPV6: 'true'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.