用網頁瀏覽器開啟一個網頁瀏覽器,這個玩法滿有趣的,這種感覺相當於你在 A 地連到 B 地去開網頁瀏覽器,一方面開啟網頁的位置變了,二方面存取 B 端資源的方式則是用 80/433 埠就完成跳轉,而這件事只要會啟動容器就可以完成了唷。
由 LinuxServer.io 發行的 lscr.io/linuxserver/msedge Docker 映像,是基於 Chromium 的 Microsoft Edge 瀏覽器封裝於 KasmVNC GUI 容器中,讓你可以透過 3000(HTTP)與 3001(HTTPS)連接埠提供遠端圖形化瀏覽體驗。
透過這個容器印象檔,就可以輕鬆達成想要的「用網頁瀏覽器開啟一個網頁瀏覽器」唷。
環境變數與運行組態
這個印象檔提供滿多環境變數可以設定的,整理如下:
環境變數(-e)
| 變數 | 說明 |
|---|---|
| CUSTOM_PORT | HTTP 服務內部埠(預設 3000) |
| CUSTOM_HTTPS_PORT | HTTPS 服務內部埠(預設 3001) |
| CUSTOM_USER | Basic Auth 使用者名稱,預設 abc |
| PASSWORD | Basic Auth 密碼,預設 abc;未設即無認證 |
| SUBFOLDER | 反向代理子目錄,需以 /subfolder/ 格式 |
| TITLE | 瀏覽器頁面標題,預設 “KasmVNC Client” |
| FM_HOME | 檔案管理器根目錄,預設 /config |
| START_DOCKER | 設為 false 將不啟動容器內的 DinD Docker 環境 |
| DRINODE | 指定 DRI3 GPU 裝置,如 /dev/dri/renderD128 |
| DISABLE_IPV6 | 任意值啟用即可關閉 IPv6 |
| LC_ALL | 設定容器語言,如 fr_FR.UTF-8、ar_AE.UTF-8 |
| NO_DECOR | 取消視窗邊框,適用於 PWA 模式 |
| NO_FULL | 禁止自動全螢幕 |
務必設定密碼,否則很容易被掃瞄到,因此成為黑客的待宰羔羊。
運行組態
--privileged:啟用 Docker-in-Docker(DinD),可搭配-v /home/user/docker-data:/var/lib/docker提升效能。-v /var/run/docker.sock:/var/run/docker.sock:將宿主機 Docker socket 掛入容器以供 CLI 操作或應用內 Docker 呼叫。--device /dev/dri:/dev/dri:將 GPU 裝置掛入容器,可搭配 DRINODE 參數實現 GPU 加速(僅限開放原始碼驅動)。可透過
LC_ALL調整預設語系;映像預設僅含 Latin 字型,若需 CJK 字型,可安裝 mods 並設定:1
2
3-e DOCKER_MODS=linuxserver/mods:universal-package-install
-e INSTALL_PACKAGES=fonts-noto-cjk
-e LC_ALL=zh_CN.UTF-8Web 介面設定中啟用 “IME Input Mode” 後,可在非 en_US 鍵盤下使用本地輸入法。
Docker Compose
我個人是覺得使用 docker-compose 的方式來管理啟動指令,是相當方便的,除了可以文件化整個啟動指令,還可以藉此做版控,我使用的基本樣板如下:
1 | version: "3.8" |
當然,有些環境還是適合用 docker run 指令的方式來啟動容器,例如在 Synology NAS 上就可以用以下 docker run 指令搭配排成管理氣,達成啟動 NAS 自動啟動該容器,我在我 NAS 所使用的指令樣板如下:
1 | docker run -d --name=edge \ |
最後,啟動容器後就可以透過瀏覽器連線到該容器,用瀏覽器來瀏覽瀏覽器了。

後記
如果你習慣使用的是 Chrome 或 Firefox 瀏覽器了話,也可以參考 linuxserver/docker-chromium 或 linuxserver/docker-firefox 來啟動對應的容器喔。
參考資料: