Docker是一個容器化平臺,可讓您快速構建,測試和部署應用程序,作為可在幾乎任何地方運行的可移植的自給式容器。 Docker Compose是一個工具,可用于定義和編排多容器Docker應用程序。它使用YAML文件來配置應用程序的容器,網(wǎng)絡和卷。 Compose可以用于各種目的。單個主機應用程序部署,自動化測試和本地開發(fā)是Docker Compose最受歡迎的用例。 本教程介紹了如何在Debian 10 Buster上安裝最新版本的Docker Compose。我們還將探索基本的Docker Compose概念和命令。 先決條件在繼續(xù)之前,請確保您已滿足以下先決條件: 在Debian 10上安裝Docker Compose官方的Debian 10倉庫中提供了Docker Compose安裝軟件包,但它不一定總是最新版本。推薦的方法是從Docker的GitHub存儲庫安裝Docker Compose。 在撰寫本文時,最新的Docker Compose穩(wěn)定版本是version 1.23.1 。在下載Compose二進制文件之前,請訪問GitHub上的Compose存儲庫發(fā)行頁面,并檢查是否有新版本可下載。 使用以下步驟在Debian 10上安裝最新版本的Docker Compose: /usr/local/bin 使用wget 或?qū)ocker Compose二進制文件下載到目錄中curl :
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
使用chmod 使撰寫二進制可執(zhí)行文件: sudo chmod +x /usr/local/bin/docker-compose
要驗證安裝,請使用以下命令打印出Compose版本: docker-compose --version
輸出將如下所示: docker-compose version 1.23.1, build b02f1306
Docker Compose入門在本節(jié)中,我們將展示如何使用Docker Compose設置本地WordPress開發(fā)環(huán)境。 為項目創(chuàng)建一個目錄并cd到其中: mkdir wordpress_app && cd wordpress_app
打開您的文本編輯器,然后創(chuàng)建一個名為的文件docker-compose.yml : nano docker-compose.yml
粘貼以下內(nèi)容,docker-compose.yml: version: '3.7'
services:
db:
image: mysql:8.0
command: --default-authentication-plugin=mysql_native_password
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:
讓我們逐行解釋代碼 第一行指定Compose文件的版本。有多種不同版本的Compose文件格式,支持特定的Docker版本。 接下來,我們定義兩個服務,db 和wordpress 。運行Docker Compose時,每個服務都會創(chuàng)建一個單獨的容器。 該db 服務: 圖像被設置為mysql:8.0 圖像。如果不存在該映像,則Compose將從Docker Hub公共存儲庫中提取該映像。以開頭的行將command 覆蓋默認命令。 該restart: always 策略指示Compose如果發(fā)生故障,請重新啟動容器。 容器將使用命名卷db_data 來持久化數(shù)據(jù)庫。 定義mysql:8.0 圖像的環(huán)境變量。
該wordpress 服務: 使用wordpress 圖像。 wp_data 將主機上的目錄掛載到/var/lib/mysql 容器內(nèi)部。
80 將容器上的裸露端口轉(zhuǎn)發(fā)到8080 主機上的端口。
定義環(huán)境變量的wordpress 圖像。 該depends_on 指令定義了兩個服務之間的依賴關系。在此示例中,db 將在之前啟動wordpress 。
在項目目錄中,通過運行以下命令來啟動WordPress堆棧: docker-compose up
輸出應如下所示: ...
] /usr/sbin/mysqld: ready for connections. Version: '8.0.18' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.
db_1_99946702ac7e | 2019-12-15T21:37:29.109255Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060
...
Docker Compose將提取圖像,啟動容器,并wp_data 在您的項目目錄中創(chuàng)建目錄。 http://0.0.0.0:8080/ 在瀏覽器中輸入,您將看到標準的WordPress安裝屏幕。
至此,WordPress應用程序已啟動并運行,您可以開始使用它了。 要停止撰寫,請按CTRL+C 。 您還可以使用以下-d 選項以分離模式啟動Compose : docker-compose up -d
要查看正在運行的Docker容器,請使用以下命令: docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------------------------
wordpress_app_db_1_99946702ac7e docker-entrypoint.sh --def ... Up 3306/tcp, 33060/tcp
wordpress_app_wordpress_1_a428d8408817 docker-entrypoint.sh apach ... Up 0.0.0.0:8080->80/tcp
要在Compose以分離模式運行時停止服務,請使用: docker-compose stop
如果要完全刪除容器,請使用以下down 選項: docker-compose down
通過--volumes 交換機還會刪除數(shù)據(jù)量: docker-compose down --volumes
卸載Docker Compose如果需要卸載Docker Compose,只需輸入以下內(nèi)容即可刪除二進制文件: sudo rm /usr/local/bin/docker-compose
|