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

2023-10-16

Docker 组合是一个允许您定义和运行多容器 Docker 应用程序的工具。

使用 Compose,您可以在单个 YAML 文件中定义应用程序的服务、网络和卷,然后使用单个命令启动您的应用程序。

Compose 可用于不同的目的,例如单主机应用程序部署、自动化测试和本地开发。

本教程将引导您在 CentOS 7 上安装最新版本的 Docker Compose。我们还将介绍基本的 Docker Compose 概念和命令。

先决条件#

在继续本教程之前,请确保您满足以下先决条件:

  • 登录身份为具有 sudo 权限的用户 .
  • Have Docker 安装在 CentOS 7 上 system.

在 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. 要验证安装,请输入以下命令来打印 Compose 版本:

    docker-compose --version

    输出将如下所示:

    docker-compose version 1.23.1, build b02f1306

Docker Compose 入门#

在本节中,我们将展示如何使用 Docker Compose 在 CentOS 7 计算机上运行 WordPress 堆栈。

开始于创建一个新目录对于该项目并导航到它:

mkdir my_app && cd my_app

Next, 创建一个文件 named 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 文件格式有多个不同版本,支持特定的 Docker 版本。

接下来,我们定义两个服务,db and wordpress。每个服务运行一个镜像,当 docker-compose 运行时,它将创建一个单独的容器。

The db服务:

  • 使用mysql:5.7图像。如果您的系统上不存在该映像,Compose 将从 Docker Hub 公共存储库中提取该映像。
  • 使用重启always策略将指示容器始终重新启动。
  • 创建命名卷db_data使数据库持久化。
  • 定义环境变量mysql:5.7 image.

The wordpress服务:

  • 使用文字新闻图像。如果您的系统上不存在该映像,Compose 将从 Docker Hub 公共存储库中提取该映像。
  • 使用重启always策略将指示容器始终重新启动。
  • 安装wp_data主机上的目录/var/lib/mysql容器内。
  • 将容器上公开的端口 80 转发到主机上的端口 8080。
  • 定义环境变量为了wordpress image.
  • The 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 flag:

docker-compose up -d

要检查正在运行的服务,请使用ps option:

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 option:

docker-compose down

通过--volumes开关还将删除数据卷:

docker-compose down --volumes

卸载 Docker Compose#

如果你想卸载 Docker Compose,只需delete使用以下命令生成二进制文件:

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

结论#

您已经学习了如何在 CentOS 7 上安装和使用 Docker Compose。

如果您有任何疑问,请在下面留言。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 CentOS 7 上安装和使用 Docker Compose 的相关文章

随机推荐

  • 如何在 Debian 10 上安装和配置 Ansible

    Ansible 是一款免费且易于使用的自动化工具 用于从单台计算机管理多个远程主机 它为您提供了针对大量远程主机的轻松配置 例如 您在多台机器上执行相同的任务 Ansible 为您提供了自动执行这些任务的选项 Ansible 是 Chef
  • Git 提示:签出远程分支

    Git 是一种流行的分布式版本控制系统 广泛用于软件开发和其他协作项目 Git 的主要功能之一是它能够使用远程存储库 允许您共享代码并与其他人就您的项目进行协作 在本文中 我们将讨论如何在 Git 中列出和签出远程分支 1 列出远程分支 要
  • 如何删除 CloudFront 缓存

    CloudFront 是 Amazon Web Services 提供的一项流行的缓存和内容交付网络服务 它通过其全球数据中心向用户提供数据 CloudFront 还在其服务器上创建本地内容缓存 进一步用于快速满足用户请求 失效允许我们在对
  • 通过 SQL 或 phpMyAdmin 重置 SugarCRM 管理员密码

    问题 如何通过 SQL 查询重置 SugarCRM 管理员密码 如何使用 phpMyAdmin 重置 SugarCRM 管理员密码 如何使用 SQL 查询重置 SugarCRM 忘记的密码 如何找到 SugarCRM 默认管理员密码 如果您
  • MySQL 数据库备份 RPM

    几个月前我创建了这个 rpm 现在它可供所有用户使用 这个 rpm 有一个简单的 shell 脚本用于 mysql 数据库备份 特征 在本地进行数据库备份 将备份上传到 ftp 服务器 备份完成后发送电子邮件警报 安装 直接使用命令行或使用
  • JavaScript 中删除字符串最后一个字符的 2 种方法

    问题 如何从 JavaScript 或 Node js 脚本中的字符串中删除最后一个字符 本教程介绍了使用 JavaScript 编程语言从字符串中删除最后一个字符的 2 种方法 您可以根据需要使用以下任意一种方法 方法 1 使用 subs
  • 如何在 Ubuntu 22.04 上安装 Docker

    Docker 通过启用轻量级容器化技术彻底改变了开发人员创建 部署和管理应用程序的方式 该技术允许轻松管理和隔离应用程序及其依赖项 在本教程中 我们将指导您完成在 Ubuntu 22 04 上安装 Docker 的过程 Ubuntu 22
  • 在 cPanel 帐户中启用 Apache Gzip 压缩 (mod_deflate)

    Apache mod deflate模块用于在向客户端提供服务之前压缩内容 仅当您的托管提供商在 Apache 中启用了 mod deflate 模块时 您才可以配置压缩 WHM 管理员可以全局启用 Gzip对于所有使用 WHM 控制面板的
  • 适用于不同用例的十大 Linux 发行版

    Linux 是一种开源操作系统 可以根据用户的需求和偏好为用户提供多种选择 Linux 的优点在于它是高度可定制的 这意味着用户可以调整操作系统以满足他们的特定要求 然而 由于有如此多的 Linux 发行版可供选择 因此决定选择哪一个可能会
  • Apache 中的平滑重启是什么

    Apache HTTP Server 通常称为 Apache 是一种非常流行的开源 Web 服务器软件 在 Web 内容的交付中发挥着重要作用 Apache 非常灵活 允许使用多种关键功能和配置来帮助优化其性能 其中一项重要功能是 平滑重启
  • 如何在 Linux 中使用“find”命令删除 X 天之前修改的文件

    The find Linux 中的命令是一个功能强大的工具 可用于根据各种条件 例如名称 类型 大小和时间戳 搜索文件 查找 命令的一个常见用例是删除超过一定天数的文件 这对于清理旧备份 日志文件或不再需要的其他类型的文件非常有用 在本文中
  • 如何在 CentOS 8 上安装 Anaconda

    Anaconda 是最流行的 Python R 数据科学和机器学习平台 它用于大规模数据处理 预测分析和科学计算 Anaconda 发行版附带 1 500 多个开源数据包 它还包括conda命令行工具和称为 Anaconda Navigat
  • 如何在 Ubuntu 18.04 上安装 Magento 2

    Magento是基于开源技术构建的领先企业级电子商务平台 将强大的功能与灵活性和用户友好的界面相结合 凭借引人入胜的购物体验 灵活的模块化架构以及企业级可扩展性和性能等功能 Magento 是大多数在线商家的首选平台 在本教程中 我们将向您
  • 如何在 Ubuntu 20.04 上安装 Skype

    Skype是世界上最流行的通信应用程序之一 它是跨平台的 可在 Windows Linux 和 macOS 上使用 通过 Skype 您可以免费进行在线音频和视频通话 以及拨打世界各地的手机和固定电话的国际电话 Skype 不是开源应用程序
  • 如何使用 .htaccess 强制使用 HTTPS

    如果您为域安装了 SSL 证书 则下一步应该是将应用程序配置为通过 HTTPS 提供所有 Web 流量 与以明文形式发送和返回请求和响应的 HTTP 不同 HTTPS 使用 TLS SSL 来加密客户端和服务器之间的通信 相对于 HTTP
  • 如何在 CentOS 8 上安装和配置 NFS 服务器

    网络文件系统 NFS 是一种分布式文件系统协议 允许您通过网络共享远程目录 使用 NFS 您可以在系统上挂载远程目录并像使用本地文件一样使用远程计算机上的文件 NFS 协议默认不加密 并且与 Samba 不同 它不提供用户身份验证 对服务器
  • 如何检查 Bash 中文件或目录是否存在

    很多时候 在编写 Shell 脚本时 您可能会发现自己处于需要根据文件是否存在来执行操作的情况 在Bash中 可以使用test命令来检查文件是否存在并判断文件的类型 测试命令采用以下语法形式之一 test EXPRESSION EXPRES
  • 如何在 Python 中分割字符串

    使用字符串时 日常操作之一是使用给定的分隔符将字符串拆分为子字符串数组 在这篇文章中 我们将讨论如何在Python中分割字符串 split 方法 在Python中 字符串被表示为不可变的str对象 这str类附带了许多字符串方法 允许您操作
  • 如何在 Ubuntu 18.04 上安装和配置 Samba

    Samba 是一个免费且开源的重新实现SMB CIFS网络文件共享协议那 允许最终用户访问文件 打印机和其他共享资源 本教程介绍如何在 Ubuntu 18 04 上安装 Samba 并将其配置为独立服务器 以通过网络在不同操作系统之间提供文
  • 如何在 CentOS 7 上安装和使用 Docker Compose

    Docker 组合是一个允许您定义和运行多容器 Docker 应用程序的工具 使用 Compose 您可以在单个 YAML 文件中定义应用程序的服务 网络和卷 然后使用单个命令启动您的应用程序 Compose 可用于不同的目的 例如单主机应