如何在 Debian 9 上安装和使用 Docker Compose

2023-11-05

Docker 组合是一个允许您定义和编排多容器 Docker 应用程序的工具。它使用 YAML 文件来配置应用程序的容器、网络和卷。

Compose 可用于多种目的。单主机应用程序部署、自动化测试和本地开发是 Docker Compose 最流行的用例。

本教程将逐步介绍在 Debian 9 上安装最新版本 Docker Compose 的过程。我们还将探讨基本的 Docker Compose 概念和命令。

先决条件#

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

  • 登录身份为具有 sudo 权限的用户 .
  • Have Docker 安装在 Debian 9 上机器。

在 Debian 上安装 Docker Compose#

Docker Compose 安装包可在官方 Debian 9 存储库中找到,但它可能并不总是最新版本。推荐的方法是从 Docker 的 GitHub 存储库安装 Docker Compose。

在撰写本文时,Docker Compose 的最新稳定版本为1.23.1。下载 Compose 二进制文件之前,请访问GitHub 上的 Compose 存储库发布页面并检查是否有新版本可供下载。

执行以下步骤在 Debian 9 上安装最新版本的 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. 下载完成后,给出可执行权限到 Compose 二进制文件:

    sudo chmod +x /usr/local/bin/docker-compose
  3. 通过键入以下内容验证安装:

    docker-compose --version

    输出将如下所示:

    docker-compose version 1.23.1, build b02f1306

Docker Compose 入门#

在本节中,我们将展示如何使用 Docker Compose 管理 Debian 9 计算机上的 WordPress 堆栈。

首先为项目创建一个目录并改变成它 :

mkdir wordpress_appcd wordpress_app

打开文本编辑器并创建一个文件 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_70f2f980e1fb | [Mon Nov 19 18:00:31.002748 2018] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.25 (Debian) PHP/7.2.12 configured -- resuming normal operations
wordpress_1_70f2f980e1fb | [Mon Nov 19 18:00:31.002912 2018] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'

Compose 将拉取两个镜像,启动两个容器并创建wp_data目录在您的项目目录中。

Enter 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        
----------------------------------------------------------------------------------
wordpress_app_db_1          docker-entrypoint.sh mysqld      Up      3306/tcp, 33060/tcp 
wordpress_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,您可以简单地remove键入以下二进制文件:

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

结论#

您已经学习了如何在 Debian 9 上安装和使用 Docker Compose。如果您有任何疑问,请在下面发表评论。

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

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

随机推荐

  • 如何在 Fedora 和 CentOS 上安装 Opera

    Opera 是一种流行的网络浏览器 拥有大量用户 它是一款安全 快速的网络浏览器 适用于移动和桌面系统 该浏览器提供内置 VPN 以确保用户安全浏览 您可以直接从其官方网站下载Opera网页浏览器RPM包 此外 它还可以使用 Snap 包进
  • C 程序将两个数字相加

    在本文中 我们将深入研究 C 语言编程的实践方面 特别关注一个基本操作 两个数字相加 虽然它看起来很基础 但它是理解更大 更复杂的程序的基石 C 中两个数相加 在 C 语言中添加两个数字是一项简单的任务 通常是初学者了解该语言的语法和结构的
  • 如何在 Ubuntu 20.04 上安装 Redis

    Redis 是一种内存数据结构存储 用作数据库服务器 缓存和消息代理 Redis是用C编程语言编写的 它还提供了一个 PHP 模块 用于 PHP 脚本与 Redis 服务器之间的通信 本教程将帮助您在 Ubuntu 20 04 LTS 系统
  • 如何在 Debian 10 (Buster) 上安装 Java

    Java 是一种流行的编程语言 有数十亿的应用程序使用 我们知道 Oracle JDK 需要 Oracle 二进制代码许可协议下的商业许可 我们将在您的 Debian 系统上安装 OpenJDK OpenJDK 是完全免费的开源 Java
  • 如何使用 Imapsync 在 IMAP 服务器之间传输邮箱

    什么是 Imapsync Imapsync 是一种 IMAP 传输工具 用于将邮箱和电子邮件从一个 IMAP 服务器传输到另一个 IMAP 服务器 Imapsync 应用程序是一种命令行工具 允许增量和递归 IMAP 从一个邮箱传输到另一个
  • 如何在 Ubuntu 18.04、16.04 上安装和配置 OpenVPN 服务器

    VPN 或虚拟专用网络是一组通过公共网络 Internet 连接到专用网络的计算机 如今 安全性是每个人最关心的问题 在公共网络上工作时更需要安全性 就像您在远程位置有一组计算机一样 现在您需要将这些计算机作为系统中的 LAN 网络进行访问
  • 如何在 Ubuntu 22.04 上安装和使用 Monit

    Monit 是一个多功能且功能强大的开源实用程序 用于管理和监控基于 Unix 的系统 它可用于监视系统资源 服务和应用程序 使您能够确保它们以最佳状态运行并保持可用 Monit 还可以配置为自动重新启动服务并在满足某些条件时发送通知 在本
  • 使用 Python FastAPI 和 MySQL

    FastAPI 是一个现代 快速 高性能 的 Web 框架 用于使用 Python 构建 API 它基于标准 Python 类型提示构建 使其易于使用 同时为开发人员提供了许多高级功能 构建 FastAPI 应用程序时 为了安全性和模块化
  • 如何在 CentOS 8 上配置静态 IP 地址

    问题 如何在 CentOS 8 上更改或配置 IP 地址 在 CentOS 桌面系统上设置静态 IP 地址的步骤 截至今天 CentOS 8 Linux 操作系统是 CentOS 的最新可用版本 桌面提供了一个有吸引力的 GUI 来使用它
  • Java 开发人员的重要代码格式化技巧

    Java 代码格式化是编写干净 可读和可维护代码的一个重要方面 在整个团队或组织中采用一套一致的格式化规则将显着提高代码库的整体质量 使开发人员更容易理解 修改和调试代码 本文将概述 Java 代码格式化最佳实践 讨论开发人员可以用来增强代
  • 如何在 Fedora 35/34/33 上安装 Erlang

    Erlang是一种编程语言 用于构建具有高可用性要求的大规模可扩展的软实时系统 Erlang运行时系统内置了对并发 分布式和容错的支持 本教程将帮助您在 Fedora Linux 系统上安装 erlang 步骤 1 在 Fedora 上安装
  • 如何在 Ubuntu 和 Debian 上设置 Squid 代理服务器

    如果您正在寻找一种增强 Debian 服务器安全性和性能的方法 那么设置 Squid 代理服务器可能是一个不错的选择 Squid 是一种广泛使用的开源代理服务器 提供缓存 过滤和身份验证等各种功能 在本文中 我们将讨论在 Ubuntu 和基
  • 如何在 CentOS 8 上安装和配置 VNC

    虚拟网络计算 VNC 是一种图形桌面共享系统 允许您使用键盘和鼠标远程控制另一台计算机 本文介绍了在 CentOS 8 上安装和配置 VNC 服务器的步骤 我们还将向您展示如何通过 SSH 隧道安全地连接到 VNC 服务器 先决条件 要遵循
  • Linux 中的日期命令

    在本教程中 我们将介绍以下基础知识date命令 The date命令显示或设置系统日期 它最常用于以不同格式打印日期和时间以及计算未来和过去的日期 使用Linuxdate命令 语法为date命令如下 date OPTION FORMAT 要
  • 如何在 CentOS 8 上安装 OpenCV

    OpenCV 开源计算机视觉库 是一个开源计算机视觉库 绑定了 C Python 和 Java 并支持所有主要操作系统 它可以利用多核处理并具有 GPU 加速功能来实现实时操作 OpenCV 的应用非常广泛 包括医学图像分析 拼接街景图像
  • 如何在 Linux 中设置和列出环境变量

    在基于 Linux 和 Unix 的系统中 环境变量是一组动态命名值 存储在系统中 供在 shell 或子 shell 中启动的应用程序使用 简而言之 环境变量是具有名称和关联值的变量 环境变量允许您自定义系统的工作方式以及系统上应用程序的
  • 如何在 Debian 10 上安装 Gradle

    Gradle 是一个强大而灵活的构建工具 主要用于 Java 项目 结合了 Ant 和Maven 与使用 XML 进行脚本编写的前辈不同 Gradle 使用Groovy 一种动态的 面向对象的编程语言 用于 Java 平台定义项目和构建脚本
  • 如何在 Linux、Windows 和 macOS 上编辑 Hosts 文件

    Hosts 文件用于将域名 主机名 映射到 IP 地址 它是所有操作系统 包括 Linux Windows 和 macOS 都使用的纯文本文件 主机文件的优先级高于 DNS 当您输入要访问的网站的域名时 必须将域名转换为其相应的IP地址 操
  • Bash 连接字符串

    最常用的字符串操作之一是连接 字符串连接只是一个奇特的编程术语 用于通过将一个字符串附加到另一个字符串的末尾来将字符串连接在一起 在本教程中 我们将解释如何在 Bash 中连接字符串 连接字符串 连接两个或多个字符串变量的最简单方法是将它们
  • 如何在 Debian 9 上安装和使用 Docker Compose

    Docker 组合是一个允许您定义和编排多容器 Docker 应用程序的工具 它使用 YAML 文件来配置应用程序的容器 网络和卷 Compose 可用于多种目的 单主机应用程序部署 自动化测试和本地开发是 Docker Compose 最