Docker Compose是一個命令行工具,可讓您定義和編排多容器Docker應用程序。它使用YAML文件來配置應用程序的服務,網絡和卷。
使用Compose,您可以定義可在任何系統上運行的便攜式應用程序環境。撰寫環境彼此隔離,使您可以在單個主機上運行同一環境的多個副本。
Compose通常用於本地開發,單個主機應用程序部署和自動化測試。
本文介紹了如何在Ubuntu 20.04上安裝最新版本的Docker Compose。我們還將探討基本的Docker Compose概念和命令。
先決條件
我們假設您在Ubuntu計算機上安裝了Docker。
在Ubuntu上安裝Docker Compose
Docker Compose是一個二進制文件。安裝非常簡單。我們將文件下載到系統PATH中的目錄中,並使其可執行。
Docker Compose軟件包在官方的Ubuntu 20.04存儲庫中可用,但它不一定總是最新版本。
在撰寫本文時,Docker Compose的最新穩定版本是1.25.5
。在下載Compose二進制文件之前,請訪問GitHub上的Compose存儲庫發行頁面,並檢查是否有新版本可下載。
用於curl
將Compose文件下載到/usr/local/bin
目錄中:
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
下載完成后,將可執行權限應用於文件:
sudo chmod +x /usr/local/bin/docker-compose
要驗證安裝是否成功,請運行以下命令,該命令將打印Compose版本:
docker-compose --version
輸出將如下所示:
docker-compose version 1.25.5, build b02f1306
Docker Compose已安裝在您的Ubuntu機器上,您可以開始使用它。
Docker Compose入門
在本節中,我們將使用Docker Compose構建一個多容器WordPress應用程序
第一步是創建一個項目目錄:
mkdir my_app
cd my_app
打開文本編輯器,並創建一個文件名為docker-compose.yml
項目目錄內:
nano docker-compose.yml
粘貼以下內容:
version: '3'
services:
db:
image: mysql:5.7
restart: always
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: wordpress
wordpress:
image: wordpress
restart: always
volumes:
- ./wp_data:/var/www/html
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: password
depends_on:
- db
volumes:
db_data:
wp_data:
讓我們分析docker-compose.yml
文件的結構。
文件的第一行指定Compose文件的版本。有多種不同版本的Compose文件格式,支持特定的Docker版本。
接下來,定義服務,卷和網絡。
在此示例中,我們有服務db
和wordpress
。每個服務運行一個映像,並在運行docker-compose時創建一個單獨的容器。
服務可以使用DockerHub上可用的映像或從Dockerfile構建的映像。服務部分還包含用於指定公開的端口,卷,環境變量,依賴項和其他Docker命令的鍵
在項目目錄中,通過運行以下命令來啟動WordPress應用程序:
docker-compose up
Compose將提取圖像,啟動容器,並創建wp_data
目錄。
http://0.0.0.0:8080/
在瀏覽器中輸入,您將看到Wordpress安裝屏幕。此時,Wordpress應用程序已啟動並正在運行,您可以開始處理主題或插件。
要停止撰寫,請按CTRL+C
。
您還可以通過以下-d
選項以分離模式啟動Compose :
docker-compose up -d
要檢查正在運行的服務,請使用以下ps
選項:
docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------
my_app_db_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp
my_app_wordpress_1 docker-entrypoint.sh apach ... Up 0.0.0.0:8080->80/tcp
當Compose在分離模式下運行以停止服務時,請運行:
docker-compose stop
要停止和刪除應用程序容器和網絡,請使用以下down
選項:
docker-compose down
卸載Docker Compose
要卸載Docker Compose,只需輸入以下內容即可刪除二進制文件:
sudo rm /usr/local/bin/docker-compose
結論
我們已經向您展示了如何在Ubuntu 20.04上安裝Docker Compose。使用Docker Compose可以顯着改善您的工作流程和生產力。您可以使用Docker Compose定義您的開發環境,並與項目合作者共享。