繁体   English   中英

如何在local.network上通过局域网连接到Docker服务UI

[英]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 会很简单。

对于我的生活,我似乎无法调出另一台计算机上的用户界面。 我刚刚在我的浏览器中收到超时错误。

我努力了:

  1. 访问 192.168.89.254:81,在主机上正常
  2. 添加 -.net=host 标志
  3. 在 YAML 中切换端口/IP
  4. 删除 custom.network/bridge 并只做默认(即 localhost:81)

有谁知道如何在同一网络上的另一台本地 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM