如何在 Ubuntu 20.04 上安装 Docker Compose

Docker compose 是管理多个 Docker 容器的有用工具。 它帮助我们使用单个命令启动、更新和构建一组 docker 容器。 在多容器应用的情况下,docker compose 帮助我们更轻松地管理它。

本教程可帮助您在 Ubuntu 20.04 LTS Linux 系统上安装 Docker compose。

先决条件

  • 运行 Ubuntu 20.04 的系统。
  • 在 Ubuntu 20.04 上预装 Docker 服务。
  • 终端访问 sudo 特权帐户。

在 Ubuntu 上安装 Docker Compose

Docker compose 二进制文件在官方 Github 版本上可用。 用 curl 用于下载 docker compose 二进制文件并将其放置在 PATH 环境下以使其全局可用的命令行工具。

首先,确保你有最新的 curl 二进制安装在您的系统上。

sudo apt update  sudo apt install -y curl  

现在,确认最新的 docker-compsoe 二进制版本 Github 发布 页。 在撰写本教程时,当前的稳定版本是 1.29.2.

以下命令将下载 docker-compose 二进制版本 1.29.2 并将此文件保存在 /usr/local/bin/docker-compose.

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-Linux-x86_64" -o /usr/local/bin/docker-compose  

使二进制 docker-compose 文件可执行

chmod +x /usr/local/bin/docker-compose  

通过运行 followign 命令验证 docker-compose 版本。

docker-compose --version  

输出:

docker-compose version 1.29.2, build 5becea4c 

运行 Docker Compose 示例

在这个阶段 Docker compose 已经在你的 Ubuntu 系统上配置好了。

  1. 首先,创建一个目录,该目录将包含与此示例相关的所有文件。
    mkdir ~/myapp && cd ~/myapp 
  2. 现在,创建一个 html 目录。 我们将此目录映射为在 Docker 容器下运行的 Web 服务器的文档根目录
    mkdir html 
  3. 现在在 html 文件下创建一个 index.html 文件。
    echo "<h2>Hello TecAdmin</h2>" > html/index.html  
  4. 接下来,创建最重要的配置文件 docker-compose.yml。 该文件包含 docker-compose 使用的所有设置。 该文件的基础 docker-compose 设置图像、网络和容器等。

    为了更好地理解,我将分部分讨论这个问题。 在文本编辑器中编辑文件:

    sudo nano docker-compose.yml  

    将以下内容添加到文件中。

    version: '3'   services:   web:     image: "php:8.0-apache"     restart: 'always'     volumes:       - ./html:/var/www/html     ports:       - '8080:80' 

    以上内容说明我们使用的是最新版本的docker compose version 3。

    接下来,我们在服务部分定义了一个服务“web”。 这将使用预构建的“php:8.0-apache”AMI 启动一个 docker 容器。 当前文件夹中的“html”目录将挂载到容器的 /var/www/html 目录中。

    将您的文件保持在编辑模式。

  5. 接下来在 docker compose 文件中添加一个 MySQL 数据库容器。

    version: '3'   services:   web:     image: "php:8.0-apache"     restart: 'always'     volumes:       - ./html:/var/www/html     ports:       - '8080:80'     depends_on:       - mysql     links:       - mysql   mysql:     image: mysql:8     container_name: mysql     environment:       MYSQL_ROOT_PASSWORD: my_secret_password       MYSQL_DATABASE: app_db       MYSQL_USER: db_user       MYSQL_PASSWORD: db_user_pass     ports:       - "6033:3306"     volumes:       - dbdata:/var/lib/mysql volumes:   dbdata: 

    您可以更改 MySQL 版本和访问凭据。 我们还更新了 Web 容器配置以链接数据库。 这将允许 Web 容器直接访问数据库。

    将您的文件保持在编辑模式…

  6. 可选但有助于添加 phpmyadmin docker 容器。 这将帮助您访问数据库及其用户。

    添加 phpmyadmin 后,您的 docker-compose.yml 如下所示:

    version: '3'   services:   web:     image: "php:8.0-apache"     restart: 'always'     volumes:       - ./html:/var/www/html     ports:       - '8080:80'     depends_on:       - mysql     links:       - mysql    mysql:     image: mysql:8     container_name: mysql     environment:       MYSQL_ROOT_PASSWORD: my_secret_password       MYSQL_DATABASE: mydb       MYSQL_USER: dbuser       MYSQL_PASSWORD: dbuser_password     ports:       - "6033:3306"     volumes:       - dbdata:/var/lib/mysql    phpmyadmin:     image: phpmyadmin/phpmyadmin     container_name: phpmyadmin     links:       - mysql     environment:       PMA_HOST: mysql       PMA_PORT: 3306       PMA_ARBITRARY: 1     restart: always     ports:       - 8081:80  volumes:   dbdata: 

    Save 你提交和 close 它。

  7. 接下来,运行以下命令以拉取系统上的所有映像。

    sudo docker-composer pull  
  8. 接下来运行 build 命令来创建 docker 镜像。 对于此示例,您可以跳过此命令,因为我们仅使用预构建映像。

    sudo docker-composer build 
  9. 最后,运行 docker-compose up 命令。 使用“-d”选项取消容器以继续运行。

    sudo docker-composer up -d