簡體   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