如何在CentOS 7上安裝和使用Docker Compose

Docker Compose是一個工具,可讓您定義和運行多容器Docker應用程序。

使用Compose,您可以在單個YAML文件中定義應用程序的服務,網絡和卷,然後使用單個命令旋轉應用程序。

Compose可用於不同目的,例如單個主機應用程序部署,自動化測試和本地開發。

本教程將引導您逐步在CentOS 7上安裝最新版本的Docker Compose。我們還將介紹基本的Docker Compose概念和命令。

先決條件

在繼續本教程之前,請確保您滿足以下先決條件:

  • 以具有sudo特權的用戶身份登錄。
  • 在CentOS 7系統上安裝Docker。

在CentOS上安裝Docker Compose#

在CentOS 7上安裝Docker Compose的推薦方法是從Docker的GitHub存儲庫下載Compose二進制文件。

在撰寫本文時,最新的Docker Compose穩定版本為 1.23.1。 在下載Compose二進制文件之前,請訪問GitHub上的Compose存儲庫發行頁面,並檢查是否有新版本可下載。

完成以下步驟以在CentOS 7上安裝Docker Compose:

  1. 首先將Docker Compose二進制文件下載到 /usr/local/bin 使用以下目錄 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
  2. 下載完成後,通過鍵入以下內容使二進制可執行文件:

    sudo chmod +x /usr/local/bin/docker-compose
  3. 要驗證安裝,請鍵入以下命令以打印撰寫版本:

    docker-compose --version

    輸出將如下所示:

    docker-compose version 1.23.1, build b02f1306

Docker Compose入門

在本節中,我們將展示如何使用Docker Compose在CentOS 7計算機上運行WordPress堆棧。

首先為項目創建一個新目錄並導航到其中:

mkdir my_app && cd my_app

接下來,創建一個名為 docker-compose.yml 在項目目錄中:

nano docker-compose.yml

粘貼以下內容:

docker-compose.yml

version: '3.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:

讓我們逐行分析代碼。

第一行指定Compose文件的版本。 有多種不同版本的Compose文件格式,支持特定的Docker版本。

接下來,我們定義兩個服務, dbwordpress。 每個服務運行一個映像,並且在運行docker-compose時將創建一個單獨的容器。

db 服務:

  • 使用 mysql:5.7 圖片。 如果系統上沒有該映像,則Compose將從Docker Hub公共存儲庫中提取該映像。
  • 使用重啟 always 指示容器始終重新啟動的策略。
  • 創建一個命名卷 db_data 使數據庫持久化。
  • 定義環境變量 mysql:5.7 圖片。

wordpress 服務:

  • 使用 wordpress 圖片。 如果系統上沒有該映像,則Compose將從Docker Hub公共存儲庫中提取該映像。
  • 使用重啟 always 指示容器始終重新啟動的策略。
  • 掛載 wp_data 主機上的目錄 /var/lib/mysql 在容器內。
  • 將容器上的裸露端口80轉發到主機上的端口8080。
  • 定義環境變量 wordpress 圖片。
  • depends_on 指令定義兩個服務之間的依賴關係。 在這個例子中 db 將在之前開始 wordpress

在項目目錄中,使用以下命令啟動WordPress應用程序:

docker-compose up

輸出應如下所示:

...
wordpress_1  | [Sat Oct 13 21:30:48.286382 2018] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.25 (Debian) PHP/7.2.10 configured -- resuming normal operations
wordpress_1  | [Sat Oct 13 21:30:48.286425 2018] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'

Compose將提取兩個圖像,啟動兩個容器並創建 wp_data 目錄在您的項目目錄中。

打開瀏覽器,輸入 http://0.0.0.0:8080/ 進入,您將看到Wordpress安裝屏幕。

至此,WordPress應用程序已啟動並正在運行,您可以開始處理主題或插件。

要停止撰寫,請按 CTRL+C。 環境變量如果要以分離模式啟動Compose,請使用 -d 旗:

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

通過 --volumes 開關還將刪除數據量:

docker-compose down --volumes

卸載Docker Compose#

如果要卸載Docker Compose,只需使用以下命令刪除二進制文件:

sudo rm /usr/local/bin/docker-compose

結論#

您已經了解了如何在CentOS 7上安裝和使用Docker Compose。

如有任何疑問,請在下面發表評論。

碼頭工人

Sidebar