CentOS7上下载安装 Docker Compose

Docker Compose简要介绍(想直接看安装步骤的请跳转到[必要的安装步骤]

Docker Compose 是一个用于定义和管理多容器 Docker 应用的工具,它可以通过一个简单的 YAML 文件(docker-compose.yml)来配置应用程序的服务、网络和存储等内容,并通过一条命令来启动、停止和管理多个容器。

Docker Compose的主要功能:
  1. 简化多容器应用的管理

    • 通过 docker-compose.yml 文件,开发者可以定义一组相关联的容器,例如数据库、后端服务、前端服务等。
    • 只需使用一条 docker-compose up 命令,就可以启动这些容器,并且可以自动处理它们之间的网络连接和数据卷。
  2. 定义服务、网络、存储

    • Docker Compose 允许你在 docker-compose.yml 中定义应用的服务(如 web、db)、网络和存储卷,所有配置都集中在一个文件中,便于管理。
  3. 环境隔离

    • 可以为每个项目创建独立的环境,避免不同项目间的依赖冲突。不同的应用或环境可以在不同的 Docker Compose 项目中独立运行。
  4. 扩展性

    • 可以轻松扩展某个服务的实例数。例如,如果需要扩展 web 服务的处理能力,可以简单调整实例数量:docker-compose up --scale web=3

docker-composedocker compose 的区别:

  • docker-compose(v1.x 版本)

    • 是一个独立的二进制文件,用于管理多容器应用。
    • 使用的是命令 docker-compose
  • docker compose(v2.x 版本)

    • 是作为 Docker CLI 插件引入的,直接内置到 Docker 工具链中,官方推荐使用。
    • 使用的是命令 docker compose(没有连字符),并且相比 v1 版本有更好的性能和集成。

常用命令:

  • 启动所有服务:

    docker-compose up
    
  • 在后台启动服务(使用 -d 表示守护模式):

    docker-compose up -d
    
  • 停止并移除所有容器:

    docker-compose down
    
  • 查看当前运行的容器:

    docker-compose ps
    
  • 查看日志:

    docker-compose logs
    

docker-compose.yml 示例:

version: '3'
services:
  web:
    image: nginx
    ports:
      - "80:80"
  db:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: example
    volumes:
      - db-data:/var/lib/mysql
volumes:
  db-data:

这个文件定义了两个服务:web(使用 Nginx)和 db(使用 MySQL),并且将 MySQL 数据存储在一个名为 db-data 的 Docker 卷中。

总结来说,Docker Compose 是一个强大且简化 Docker 多容器应用管理的工具,特别适用于开发、测试和小型生产环境。


必须的安装步骤:

  1. 安装 Docker Compose

    • 下载 Docker Compose 二进制文件:

      sudo curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
      

      1.29.1为版本号,按自己的需要来选择就好,新手如果不知道怎么选,可以参考后文的下载版本的选择部分的内容

    • 赋予可执行权限:

      sudo chmod +x /usr/local/bin/docker-compose
      
    • 测试安装是否成功:

      docker-compose --version
      

    至此,就完成了 Docker Compose 的安装过程。

  2. (可选)Docker 开启远程访问

    • 修改 Docker 服务配置,使其允许通过 TCP 2375 端口进行远程访问:

      vim /lib/systemd/system/docker.service
      

      注释掉原来的 ExecStart 行,并新增以下行:

      ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
      
    • 更新配置并重新启动 Docker:

      systemctl daemon-reload
      systemctl restart docker
      
    • 开放 2375 端口并检查:

      firewall-cmd --add-port=2375/tcp --permanent
      firewall-cmd --reload
      firewall-cmd --query-port=2375/tcp
      

    这些步骤是可选的。Docker Compose 并不强制要求 Docker 远程访问开启。如果你要在本地使用 Docker Compose,远程访问配置是 不必要 的。但是,如果你的 Docker Compose 部署涉及到多个主机之间的交互(例如在远程主机上运行容器),则需要开启 Docker 远程访问。

总结:

  • 必须步骤:下载 Docker Compose 二进制文件、赋予执行权限、测试安装。
  • 可选步骤:开启 Docker 的远程访问(如果你需要在远程主机上控制 Docker)。

如果你只是本地使用 Docker Compose,完全可以跳过 Docker 远程访问配置步骤。


下载版本的选择

选择 Docker Compose 版本时,通常推荐使用最新稳定版本,以确保你获得最新的功能和 bug 修复。具体选择版本时可以参考以下几点:

1. 最新稳定版本

Docker Compose 的最新版本可以提供最好的兼容性和功能。你可以通过访问 Docker Compose 的 GitHub Releases页面 来查看最新的版本。目前,官方建议使用的版本是 v2.x 系列,这是因为:

  • v2.x 引入了性能和功能改进,并且是未来的主要更新方向。
  • 最新版本修复了之前版本的已知问题,增强了与 Docker 引擎的兼容性。

可以通过以下命令安装最新的 v2 版本(以 2.21.0 为例,具体的版本号可以查看 GitHub):

sudo curl -L "https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2. 稳定性和项目需求

  • 最新版本(v2.x)通常推荐用于新项目,因为它包含了性能改进、功能增强以及更好的与 Docker 引擎的整合。
  • 旧版本(如 v1.29.x)可以用于已存在的项目,特别是如果你当前的项目或者 CI/CD 环境是基于 v1 版本构建的,可以继续使用 v1.29.2,这是 v1.x 系列的最终稳定版本。

3. v2 版本与 v1 的差异

Docker Compose v2 相比 v1.x 系列有了一些显著的变化:

  • Docker Compose v2 作为 Docker CLI 插件的一部分,使用 docker compose(而不是 docker-compose)命令来执行。
  • 提供了与 Docker Desktop 更好的集成,特别是针对 Windows 和 macOS 用户。
  • 更好的性能和资源管理,特别是在大规模编排的场景下。

推荐选择

  • v2.x:推荐安装最新的 v2.x 版本(比如 v2.21.0),适用于绝大部分新项目和环境。
  • v1.29.x:如果你的项目依赖于 v1 版本,并且暂时不考虑迁移到 v2,可以使用 v1.29.2,这是 v1 系列的最后一个版本。

安装 v2 最新版本的命令:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

升级注意事项

  • 迁移到 v2 时,注意 docker-compose 命令可以直接使用,但官方推荐使用 docker compose 作为命令格式。

谢谢观看! 希望能对你有所帮助。

猜你喜欢

转载自blog.csdn.net/m0_74412436/article/details/143148207
今日推荐