使用 Docker
觀看視頻教程
Docker 是開發員和管理員用於分散式應用的平臺,能夠實現在容器中運行應用程式。能夠讓您使用您的作業系統可能不支援而需要編譯的特定軟體,例如 Redis 或 MongoDB,或軟體特定的版本。
Docker 是Plesk 的一個擴展。Plesk 能夠讓您運行和管理基於某些特定 Docker 鏡像的容器,支援不僅在本地主機上使用 Docker 還支援在指定的遠端機器上使用。
要求和局限性
-
Docker is supported in Plesk for the following operating systems: CentOS 7, RedHat 7, Debian 8, Debian 9, Ubuntu 14.04, Ubuntu 16.04, and Ubuntu 18.04.
在 Plesk for Windows 中,您可以使用安裝在遠端機器上的 Docker(請參閱 使用遠端的 Docker )。
-
您可以在於 Windows Server 2008 上運行的 Plesk 裡使用 Docker。
-
您無法在於 Docker 容器內部署的 Plesk 中使用 Docker。
-
要在Plesk中使用遠端的Docker服務,需要額外的許可證。可 單獨 購買也可將其作為 Hosting Pack 的一部分進行購買。
-
Docker 只能在x64 系統上運行。
-
不能遷移或備份 Plesk 中的 Docker 容器。但是您可以備份容器使用的資料(請查看 卷宗映射 )並下載快照。
-
支援安裝有 Update 1 Hotfix 1 (7.0.1-686) 或更新版本的Virtuozzo 7。注意從此次更新起,創建基於CentOS 7的新容器會默認啟用防火牆,因為 Virtuozzo 著力推動增強安全性。Plesk 管理員應手動配置防火牆以確保將 Plesk正常運行所需的埠 打開。
如何才能使用Docker
在Plesk中安裝 Docker 擴展。
若要開始使用,請進入左邊功能窗格中的 Docker 。
鏡像目錄
在目錄( Docker > Docker 鏡像目錄 )中,Plesk 會顯示來自 https://hub.docker.com/explore 的鏡像。預設只會顯示推薦的鏡像。若要查看更多鏡像,請使用搜尋框或篩檢程式。
每個應用程式都可以使用多個版本。您可以選擇相應的標籤運行某個版本。
若要使用篩檢程式:
-
請點按搜尋框旁邊的箭頭 按鈕。
-
指定以下兩項或其中一項:鏡像名稱和repository。
您可以選擇的repositories 有:
- 本地 repository - 包含本地鏡像。這些鏡像已下載好且存儲在帶有Docker的伺服器上。詳情請查看 管理本地鏡像 。
- Docker Hub - https://hub.docker.com/explore.
若要運行容器:
-
請進入 Docker > Docker 鏡像目錄 。
-
使用搜尋框或篩檢程式在目錄中快速找到應用。
-
若要查看 Docker Hub 上的應用描述和文檔,請點按鏡像名稱。這不適合本地鏡像。
-
若要運行特定版本,請點按 運行 按鈕旁邊的箭頭,並選擇應用版本。
-
若要運行選定應用的最新版本,請點按 運行 。
如果鏡像位於本地,相應按鈕類似於 運行(本地) 。
Plesk 會創建一個容器並提示您指定其設定,例如環境變數,然後運行該容器。您可以點按 取消 (在 設定 頁面上)來取消運行。有關設定的詳情請參閱 容器設定 。
-
該容器會出現在 Docker 目錄 頁面頂部的容器清單中。
請查看日誌 (日誌) 查找成功運行容器所需的設定。
容器設定
備註: 如果您想要更改容器設定,您則需要停止運行容器:當您保存新設定時,Plesk 會重新創建容器。
若要編輯容器設定,請進入 設定 或 詳情 > 設定 。
限制記憶體
默認可在Docker容器中使用的RAM記憶體是不限的。若要限制使用RAM,請清空 無限 核取方塊,並在 記憶體限制 欄位輸入限制值,以MB為單位。
備註: 目前還不能限制Docker 容器的CPU和磁片使用量。
備註: Docker容器是管理員級別的對象,不受訂閱級別的cgroup限制 (CPU、RAM和磁片使用量)的控制。
自動啟動
如果沒有選中 系統重啟後自動啟動 選項,那麼在系統重啟後,使用該容器的網站可能會中斷,您則需要手動啟動容器。
埠映射
默認會啟用 自動埠映射 選項,容器的內部埠會被映射到主機系統上的任意埠(例如,32768)。
若要更改主機系統上的埠,請清空選項 自動埠映射 並在 手動映射 中指定其它的外部埠。如果當您清空該核取方塊時沒有出現 手動映射 則表示容器不顯示埠。
警告: 如果配置了埠映射,Docker會與主機系統的所有網路介面上的指定埠捆綁。也就是說可從任何地方存取該應用。Docker認定應用本身會執行驗證,但其實有時候不會(例如 MySQL默認不允許匿名存取,但是redis允許)。
Plesk無法決定在指定的Docker 容器中安裝哪些服務,也無法控制對這些服務的存取權限。如果您想要禁止從 Plesk外部存取應用,可使用主機系統上的防火牆進行手動設定。
卷映射
Docker 卷宗是伺服器上被掛載到 Docker 容器的目錄,因而您擁有可以從主機系統進行存取的永久存儲。Docker 卷宗中的資料可以備份,而且更重要的是,當您停止或刪除容器時不會刪除資料。
For more information about data in containers, refer to the Docker documentation.
若要添加卷宗映射,請指定以下項:
- 左邊的 「目的」 欄位 - 進入容器內的某個目錄的絕對路徑。
- 右邊的 “源” 欄位 - 進入伺服器中您要掛載到容器的目錄的絕對路徑。
若要映射更多目錄,請點按 添加映射 。
設定環境變數
容器內的應用會使用環境變數。您可能需要添加更多變數或編輯現有的變數。Plesk 允許您添加任意數量的變數。
對容器的操作
您可對容器執行以下操作:
-
重啟( 重啟 )或停止( 停止 )容器。在此類情況下,容器會按當前設定進行重新創建。
備註: 如果資料沒有保存到掛載的卷宗(請參閱 卷宗映射 部分),將會丟失。
-
查看日誌和資源消耗情況( 詳情 )。
-
更改容器設定,例如環境變數或卷宗映射( 設定 或 詳情 > 設定 )。
在運行於 CentOS 的 Plesk 中,您可以為容器設定記憶體限制( 設定 > 記憶體限制 )。
-
重命名容器( 設定 > 容器名稱 )。
-
使用相同或不同版本的鏡像重新創建一個容器( 詳情 > 重新創建 )。
-
基於使用您的自訂設定的容器創建一個鏡像( 詳情 > 保存為鏡像 )。
-
創建容器的快照( 詳情 > 下載快照 )。
-
移除容器( 移除 或 詳情 > 移除 )。
重新創建容器
通常在您想要更新應用到更新的版本時需要重新創建容器。實際上就是您可以使用目錄中的任何應用版本而非更新的版本重建容器。
重新創建過程中會保留自訂設定。若要保留容器內應用所使用的資料,需要在重新創建容器之前指定卷宗映射。通過卷宗映射能夠存取容器內使用的目錄(請參閱容器設定中的 卷映射 部分)。
若要重新創建容器:
- 進入 Docker 點按您要重新創建的容器下面的 詳情 。
- 點按容器設定中的 重新創建 並指定鏡像版本和是否使用預設的環境變數。
使用遠端 Docker
默認 Plesk 會使用以 Plesk 元件形式安裝的 Docker。但是,您也可以使用一個或多個不在 Plesk 內安裝的 Docker 服務。注意一次只能使用一台伺服器。選定的伺服器的主機名稱會在Plesk中的 Docker 目錄標頭中顯示。
備註: 管理遠端Docker服務需要Plesk附加許可證金鑰。若沒有,則只能管理在Plesk伺服器上運行的本地Docker服務。
配置遠端服務
請根據 Docker 文檔 配置運行Docker的遠端伺服器以在 Plesk 中使用該 Docker 作為遠端伺服器。
管理遠端服務
以下步驟同時適用於 Plesk for Linux 和 Plesk for Windows。
若要開始使用在遠端主機上運行的 Docker:
- 請進入 工具與設定 > Docker (在 伺服器管理 下)。
- 點按 添加伺服器 指定安裝有 Docker 的遠端伺服器的設定。
- 若要開始在 Plesk 中使用該 Docker,請選定 設為活動 選項。
進入 Docker 的連結將會在左邊功能窗格中顯示。
若要在 Docker 服務之間切換:
- 請進入 工具與設定 > Docker (在 伺服器管理 下)。
- 在伺服器列表中選擇您要使用的伺服器,並點按 設為活動 。
另外,您還可以在編輯其設定時設定伺服器為動態伺服器。
使用自訂設定創建鏡像
如果您想要基於您對容器所做的修改創建新鏡像,請使用 另存為鏡像 命令。會創建容器的快照,作為新的鏡像在鏡像目錄中出現。因此,您可以使用自訂設定(例如環境變數)創建鏡像。
若要基於您的容器創建鏡像:
請進入 Docker > 詳情 (容器名稱下)> 保存為鏡像 ,然後選擇性地指定:
- 鏡像名稱 默認會生成一個 ID 而該 ID 會用作名稱。
- 標籤。您可以在此處指定鏡像版本。默認該版本將是“最新”版。
已創建的鏡像會出現在鏡像目錄中並被標記為 本地鏡像 。
管理本地鏡像
本地鏡像是由 Docker 在本地磁片上存儲的鏡像,對於此類鏡像無需從鏡像目錄中下載。
鏡像可通過以下方式成為本地鏡像:
- 選定鏡像的任何版本(標籤),鏡像即開始下載。不過您是稍後運行容器還是取消運行(在 設定 頁面上),鏡像都會本地保存。
- 您可以上傳鏡像到 Plesk 中的 Docker 目錄裡(Docker 鏡像目錄中的 上傳鏡像 )。
- 從容器創建一個自訂鏡像(參閱 使用自訂設定創建鏡像 )。
- 使用命令列介面創建鏡像。
如果 Docker 至少有一個屬於鏡像的下載版本,該鏡像則會在目錄中被標記為 本地鏡像 。 運行(本地) 表示已經下載了最新的版本。Plesk 還會顯示某個產品現存多少本地鏡像。
若要查看本地鏡像和移除過期的本地鏡像:
-
請進入 Docker > Docker 鏡像目錄 。
-
若要查找所有本地鏡像,請點按搜尋框旁邊的箭頭並選擇 本地 (在 Repository 篩檢程式中)。
-
若要查看某個產品的所有本地鏡像,請點按產品名稱下的連結。將會顯示所有本地鏡像的標籤和已佔據的磁碟空間。
-
若要移除所有的鏡像,請點按 清除所有鏡像 。
-
若要移除指定的鏡像,請點按您想要移除的鏡像旁邊的 圖示。
設定 nginx 處理從域名到容器的代理請求
某些 Docker 容器會顯示埠,因此可通過這些埠存取容器中的應用。
當您在網站上使用 Docker 容器中的應用時,您會發現不方便在其 URL 中指定非標準的埠。為了避免該不方便情況出現,您可以設定 nginx 處理從域名到該埠的代理請求,因而域名可以使用一個標準的埠(例如 80),無需在 URL 中明確指定該埠。
要求
- 必須在 Plesk 中運行 Nginx。
- 您必須手動映射容器內的埠到主機系統上的某個埠(例如,32768)( Docker > 選擇一個容器> 設定 > 清空 選項 自動埠映射 )。
您已手動將某個容器內的埠映射到您的系統上的某個埠(例如,32768)後,則可以設定 nginx 處理從域名到該埠的代理請求,因而域名則可以在nginx 上使用標準的埠(例如,80)。若要實現,請通過下面的方式在域名設定中添加 nginx 的規則:
進入 網站與域名 > 域名> 代理規則 > 添加規則 並指定以下項:
- URL 。指定使用在容器中運行的應用的網站的 URL。可以是主網站也可以是其中一部分。
- 容器 。選擇以 Docker 容器形式運行的應用。
- 埠 。選擇在容器設定中指定的某個映射(某個容器內的一個埠映射到您的系統上的一個埠)。Nginx 將會代理到系統上該埠的請求。
代理規則在web伺服器配置中實現,例如在網站的 nginx.conf
檔中(在 /var/www/vhosts/system/$domain/conf/
目錄中):
#extension docker begin
location ~ ^/.* {
proxy_pass http://0.0.0.0:9080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#extension docker end
代理規則在NAT後的伺服器上應運行良好。
備註: 通過代理規則連接到某網站的Docker容器不計入訂閱的磁碟空間使用量。如果網站目錄以卷的形式掛載到 Docker 容器則例外,因為這樣位於容器的所有檔都將計入網站的磁碟空間使用量。