Windows

Windows:如何啟動 docker VM att 系統啟動

  • May 2, 2018

我的情況是,我需要在基於 Windows 的建構伺服器上執行 docker(我通常使用 Arch/Debian Linux),但我找不到讓 docker VM 在系統啟動時自動啟動的方法。在 Linux 上,這將是一項服務,但在 Windows 上似乎並非如此。

我按照https://docs.docker.com/engine/installation/windows/上的說明進行操作,當我使用 $ docker-machine create 啟動 docker VM 時,一切都會執行,但是如何將其作為 Windows 服務或類似服務?

目標是能夠使用建構 Docker 映像,作為容器啟動並針對它們執行 e2e 測試。由於我們正在使用 TeamCity 來建構任何關於使用 TeamCity 解決此問題的想法,我猜也可以。

前段時間我寫了一個小的 webapp,它有一個系統依賴,它只適用於 unix 系統,所以 docker 是自然的選擇(儘管我在 vagrant 上取得了相當大的成功..)

我正在使用 windows 進行開發,並在其 docker 容器中執行此 webapp。

所以我遇到了同樣的問題,“如何在系統啟動時啟動它”?

我最終在我的自動啟動目錄中得到了一個小批處理文件,其中包含以下幾行:

docker-machine start default
docker run -d -p 8080:8080 -v //c/Users/%USERNAME%/somepath:/c/Users/%USERNAME%/somepath my/image --some.webapp.param=some-webapp-param-value

第一個呼叫啟動“預設”虛擬機,儘管您應該能夠在那裡指定不同的虛擬機。第二個呼叫執行“my/image” docker 容器,將埠 8080 暴露給主機系統並從我的使用者主目錄掛載“somepath”。確保在“後台”執行容器時指定“-d”參數(檢查“docker run –help”)

之後,我的 webapp 可以通過“預設 VM”的 IP 地址訪問(在我的情況下是 192.168.99.100,這可能在您的系統上有所不同,您可以在第一次啟動此“docker quickstart 終端”時檢查輸出作為ip 地址將記錄到控制台。)

這樣我就可以像往常一樣使用我的瀏覽器,將它指向“ http://192.168.99.100:8080 ”並且可以使用我的webapp。

希望有幫助=)


編輯

現在有了所說的批處理文件,有3個選項:

  • 將批處理文件放在您的自動啟動目錄中(需要互動式使用者會話,因此可能不適合伺服器實例..)
  • 通過 Windows 的任務調度程序安排批處理文件的執行。在那裡您可以將“在電腦啟動時執行”設置為任務的觸發器。無論互動式會話(登錄使用者..)是否可用,任務都會執行
  • 使用像NSSM這樣的服務包裝器將批處理文件安裝為 Windows 服務

引用自:https://serverfault.com/questions/753971