我在開發的時候有碰到部屬伺服器上的困難,我用 Docker 來解決我的困境,文章會分為以下幾個章節:
- 我為什麼要用 Docker?(這篇文章)
- Docker 的初步認識。
- Docker Hello World。
- Docker Services。
- Docker Swarm。
- Docker Stack。
我的專案總共需要部屬 4 個伺服器程式才可以運作,Docker 也許不是最佳的解決方案,但對目前來說,比起原本的解決方案好多了。
我是一位 .Net 的開發者,當我的伺服器程式開發好之後,我必須要部屬到外部的伺服器,我需要把檔案上傳到 Linux 上,然後執行以下指令啟動伺服器:
nohup dotnet projectname.dll &
下次伺服有修改需要更新,我必須要重複這個步驟:
- 執行 Visual Studio Publish。
- 用 Winscp 將檔案放到 Linux 上。
- 將原本的伺服器刪掉(ps aux | grep dotnet, kill pid)。
- 再次執行「nohup dotnet projectname.dll &」。
每次伺服器需要更新的時候,手動的步驟實在是太麻煩了。這個時候我想要自動化,就做一個 Http Server,並做了一個 WinForm 的 Client 端工具程式,當我做好後,整個部屬流程變成如下:
- 開啟 Client 工具程式。
- 按下部屬。
但是這個部屬工具花了我不少的時間開發,雖然最終的使用還算不太麻煩,但是前置的設定讓我覺得實在有點麻煩(我必須要在 Linux 上跑一個 Http Server),甚至還有 bug 需要修正。
這個只是部屬我這個 Server,但其實我們專案必須要有 4 台伺服器才可以運作,部屬、更新對我們專案實在是有點麻煩。
以上就是我專案碰到的情況,我們在伺服器上的部屬有點麻煩:我們需要更佳的解決方案。