透過 Compose,您可以使用簡單的文字檔來定義包含多個 Docker 容器的應用程式。 接著,您會在單一命令中啟動應用程式,以執行所有作業來部署已定義的環境。 例如,本文說明如何在Ubuntu VM上快速設定具有後端MariaDB SQL 資料庫的 WordPress 部落格。 您也可以使用 Compose 來設定更複雜的應用程式。
本文上次使用 Azure Cloud Shell 和 Azure CLI 2.0.58 版在 2019 年 2 月 14 日進行測試。
使用 Azure CLI 建立 Docker 主機
安裝最新的 Azure CLI ,並使用 az login 登入 Azure 帳戶。
首先,使用 az group create 為您的 Docker 環境建立資源群組。 下列範例會在 eastus 位置建立名為 myResourceGroup 的資源群組:
az group create --name myDockerGroup --location eastus
建立名為 cloud-init.txt的 檔案,並貼上下列組態。 輸入 sensible-editor cloud-init.txt 以建立檔案,並查看可用的編輯器清單。
#include https://get.docker.com
現在使用 az vm create 建立 VM。 使用 --custom-data 參數以傳入 cloud-init 組態檔。 如果您將檔案儲存於目前工作目錄之外的位置,請提供 cloud-init.txt 組態的完整路徑。 下列範例會建立名為 myDockerVM 的 VM,並將埠 80 開啟至 Web 流量。
az vm create \
--resource-group myDockerGroup \
--name myDockerVM \
--image UbuntuLTS \
--admin-username azureuser \
--generate-ssh-keys \
--custom-data cloud-init.txt
az vm open-port --port 80 \
--resource-group myDockerGroup \
--name myDockerVM
建立 VM 需要幾分鐘的時間、要安裝的套件,以及啟動應用程式。 在 Azure CLI 將您返回提示字元之後,背景作業會繼續執行。 建立 VM 之後,請記下 Azure CLI 所顯示的 publicIpAddress。
安裝 Compose
透過 SSH 連線到新的 Docker 主機 VM。 提供您自己的IP位址。
ssh azureuser@10.10.111.11
在 VM 上安裝 Compose。
sudo apt install docker-compose
建立docker-compose.yml組態檔
建立 docker-compose.yml 組態檔,以定義要在 VM 上執行的 Docker 容器。 檔案會指定要在每個容器上執行的映像、必要的環境變數和相依性、埠,以及容器之間的連結。 如需 yml 檔案語法的詳細資訊,請參閱 撰寫檔案參考。
建立 docker-compose.yml 檔案。 使用您慣用的文字編輯器,將一些數據新增至檔案。 下列範例會建立檔案,並提示您 sensible-editor 挑選您想要使用的編輯器。
sensible-editor docker-compose.yml
將下列範例貼到您的 Docker Compose 檔案中。 此組態會使用 DockerHub 登錄 中的映像來安裝 WordPress(開放原始碼部落格和內容管理系統),以及連結的後端 MariaDB SQL 資料庫。 輸入您自己的 MYSQL_ROOT_PASSWORD。
wordpress:
image: wordpress
links:
- db:mysql
ports:
- 80:80
db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: <your password>
使用 Compose 啟動容器
在與docker-compose.yml檔案相同的目錄中,執行下列命令(視您的環境而定,您可能需要使用 sudo執行 docker-compose ):
sudo docker-compose up -d
此命令會啟動 docker-compose.yml 中指定的 Docker 容器。 此步驟需要一兩分鐘才能完成。 您會看到類似下列的輸出:
Creating wordpress_db_1...
Creating wordpress_wordpress_1...
...
若要確認容器已啟動,請輸入 sudo docker-compose ps。 您應該會看到如下的內容:
Name Command State Ports
-----------------------------------------------------------------------------------
azureuser_db_1 docker-entrypoint.sh mysqld Up 3306/tcp
azureuser_wordpress_1 docker-entrypoint.sh apach ... Up 0.0.0.0:80->80/tcp
您現在可以直接在埠 80 上的 VM 上連線到 WordPress。 開啟網頁瀏覽器,然後輸入 VM 的 IP 位址名稱。 您現在應該會看到 WordPress 開始畫面,您可以在其中完成安裝並開始使用應用程式。
後續步驟
- 如需建置和部署多容器應用程式的更多範例,請參閱 Compose 命令行參考 和 使用者指南 。
- 使用您自己或社群貢獻的 Azure Resource Manager 範本,部署具有 Docker 的 Azure VM,以及使用 Compose 設定的應用程式。 例如, 使用 Docker 範本部署 WordPress 部落格 會使用 Docker 和 Compose,在 Ubuntu VM 上使用 MySQL 後端快速部署 WordPress。
- 請嘗試整合 Docker Compose 與 Docker Swarm 叢集。 請參閱 使用 Compose 與 Swarm 的使用情境。