Docker: 入門指南
使用 Stackhero for Docker 快速、安全地進行遠端 Docker 管理
歡迎瀏覽 Stackhero 文件
Stackhero 提供即用型 Docker cloud CaaS (Containers as a Service) 平台,專為快速及可靠的 container 部署而設:
- 只需一條
docker-compose up指令即可部署到生產環境。無需額外設定:直接啟動您的 containers。- 可自訂您的網域名稱,並自動以 HTTPS 保護(例如:https://api.your-company.com、https://www.your-company.com 或 https://backoffice.your-company.com)。
- 享有高效能及強大安全性的專屬私有基礎設施。
- 一鍵套用更新,簡化維護工作,減少管理負擔。
您的 containers 約五分鐘內即可投入生產運作。Stackhero 會為您管理基礎設施、更新及安全,讓您專注於應用程式開發。了解更多 Docker CaaS cloud hosting 的詳情。
如何遠端使用 Docker CLI
您的電腦必須已安裝 Docker CLI。 如果尚未安裝,請到官方 Docker 網站下載:Docker Desktop。
透過 Stackhero for Docker,您可以像在本地一樣,利用 Docker CLI 遠端管理您的容器。這代表您可以維持熟悉的工作流程,同時直接在已準備好投入生產環境的 Docker 伺服器上安全高效地執行指令。
Docker 的「context」功能讓這一切成為可能。Context 讓您指定 Docker CLI 指令要發送到哪裡:本地 Docker daemon,還是您的 Stackhero for Docker 實例。切換 context 既快速又無縫。
安裝 Docker 憑證
為了安全連接到您的 Stackhero for Docker 實例,您需要在電腦上安裝該實例的憑證。這些憑證負責認證與加密,確保您的連線私密且受保護。
您可以使用以下指令下載並安裝憑證:
# HOST 是您的 Docker 實例網域名稱 (<XXXXXX>.stackhero-network.com)。
# SERVICE_ID 是您的 Stackhero 服務 ID。
# CERTIFICATES_PASSWORD 是您在 Stackhero 控制台 Docker 設定中定義的密碼。
(export HOST="<XXXXXX>.stackhero-network.com"
export SERVICE_ID="<SERVICE_ID>"
export CERTIFICATES_PASSWORD="<CERTIFICATES_PASSWORD>"
cd /tmp/ \
&& curl -o certificates.tar https://docker:$CERTIFICATES_PASSWORD@$HOST/stackhero/docker/certificates.tar \
&& tar -xf certificates.tar \
&& (docker context rm -f $HOST 2> /dev/null || true) \
&& docker context create $HOST \
--description "$SERVICE_ID ($HOST)" \
--docker "host=tcp://$HOST:2376,ca=ca.pem,cert=cert.pem,key=key.pem")
此指令會建立一個以您的服務網域命名的 Docker context。您可以用以下指令查看所有可用的 context:
docker context ls
如果您更新了服務網域,憑證也會變更。您需要重新安裝憑證才能安全重新連線。
遠端執行 Docker 容器
預設情況下,執行 docker ps 會顯示本機上的容器。例如,執行:
docker run --rm alpine wget -q -O - ifconfig.me
會回傳您本機的公開 IP,因為容器是在您的電腦上執行。
若要遠端操作,請將 Docker context 切換到您的 Stackhero for Docker 實例:
docker context use <XXXXXX>.stackhero-network.com
此時,所有 Docker CLI 指令都會在您的遠端 Docker 伺服器上執行。再次執行相同的 IP 查詢指令:
docker run --rm alpine wget -q -O - ifconfig.me
將會顯示您的 Stackhero for Docker 實例的公開 IP,這證明您的容器確實在遠端伺服器上運行。
若要切換回本地 Docker daemon,只需執行:
docker context use default
當您在遠端容器掛載 volume 時,所存取的檔案來自遠端伺服器,而非您的本機。 例如,
docker run -it -v ${PWD}:/mnt alpine會掛載遠端目錄,而不是您目前本地的目錄。
使用 Docker Compose 部署
Docker Compose 也會使用目前的 Docker context。當您將 context 設定為遠端實例後:
docker context use <XXXXXX>.stackhero-network.com
所有 Docker Compose 指令都會在您的遠端伺服器上執行。這讓您可以像在本地一樣簡單地部署多容器應用,但現在是在生產環境上。
使用
docker context切換 context 適合互動式操作。對於腳本或 Makefile,建議使用DOCKER_CONTEXT環境變數以獲得更細緻的控制。更多細節請參閱我們的進階文件。
如需更深入了解 Docker context,請參考 官方 Docker context 文件。