docker compose服务编排

发布于:2024-05-08 ⋅ 阅读:(23) ⋅ 点赞:(0)

简介

Docker Compose是一个用于定义和运行多容器Docker应用程序的工具,提供命令集管理容器化应用的完整开发周期,包括服务构建、启动和停止。它是基于YAML文件来定义一组相关联的应用容器为一个项目(project),然后通过单条命令来启动整个项目。这种编排方式使得容器之间的依赖关系变得清晰,便于管理和维护。

使用Docker Compose进行服务编排的基本步骤包括:

  1. 定义应用运行环境:通过Dockerfile来定义每个服务的运行环境。

  2. 定义服务:在docker-compose.yml文件中,定义组成应用的各服务,包括容器运行的镜像、参数、依赖等。这个文件描述了多个容器如何一起运行,包括使用的镜像、端口映射、环境变量、卷挂载等配置。

  3. 启动应用:使用docker-compose up命令,根据docker-compose.yml文件中的定义,自动构建需要的镜像并启动所有服务。这个命令会创建并启动定义在yml文件中的服务,并且会按照依赖关系来启动服务。

Docker Compose的特点和优势包括:

  • 简单易用:通过简单的配置文件和命令,就能实现复杂的多容器应用的部署和管理。

  • 扩展性强:可以轻松调整服务实例的数量,通过修改docker-compose.yml文件并执行docker-compose scale service-name=N命令来实现。

  • 网络配置灵活:支持自定义网络,使服务之间可以安全地进行通信,而无需暴露到公共网络中。

  • 适用于多种场景:可以用于快速搭建复杂的应用环境,如前端服务器、后端API、数据库等;也可以为产品展示准备临时但完整的环境;对于负载较小的应用,Docker Compose还提供了一种简洁的部署方式。

环境

Redhat 9.2

ip :192.168.200.133

安装docker-compose方式:存储库安装

compose 版本:Docker Compose version v2.27.0

步骤

安装docker

安装参考:安装docker

[root@admin ~]# yum -y install  yum-utils.noarch
[root@admin ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
正在更新 Subscription Management 软件仓库。
无法读取客户身份

本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。

添加仓库自:http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@admin ~]# yum -y install  docker-*
省略 。。。。。。。。

 官网下载安装安装 Compose 插件 |Docker 文档

先安装docker的源

[root@admin ~]# yum-config-manager --add-repo
https://download.docker.com/linux/rhel/docker-ce.repo

正在更新 Subscription Management 软件仓库。
无法读取客户身份

本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。

添加仓库自:https://download.docker.com/linux/rhel/docker-ce.repo
[root@admin ~]#
[root@admin ~]# yum update &&  yum install docker-compose-plugin
正在更新 Subscription Management 软件仓库。
无法读取客户身份

本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。

Docker CE Stable - x86_64                                                                       12 kB/s | 3.5 kB     00:00    
依赖关系解决。
无需任何处理。
完毕!
正在更新 Subscription Management 软件仓库。
无法读取客户身份

本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。

依赖关系解决。
===============================================================================================================================
 软件包                               架构                  版本                         仓库                             大小
===============================================================================================================================
安装:
 docker-compose-plugin                x86_64                2.27.0-1.el9                 docker-ce-stable                 13 M

事务概要
===============================================================================================================================
安装  1 软件包

总下载:13 M
安装大小:60 M
确定吗?[y/N]: y
下载软件包:
docker-compose-plugin-2.27.0-1.el9.x86_64.rpm                                                  626 kB/s |  13 MB     00:21    
-------------------------------------------------------------------------------------------------------------------------------
总计                                                                                           626 kB/s |  13 MB     00:21     
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
  准备中  :                                                                                                                1/1 
  安装    : docker-compose-plugin-2.27.0-1.el9.x86_64                                                                      1/1 
  运行脚本: docker-compose-plugin-2.27.0-1.el9.x86_64                                                                      1/1 
  验证    : docker-compose-plugin-2.27.0-1.el9.x86_64                                                                      1/1 
已更新安装的产品。

已安装:
  docker-compose-plugin-2.27.0-1.el9.x86_64                                                                                    

完毕!
[root@admin ~]# 

查看版本

[root@admin ~]# docker compose version 
Docker Compose version v2.27.0

 使用docker compose 部署wordpress

创建yml文件

[root@admin ~]# mkdir  /my_wordpress
[root@admin ~]# cd /my_wordpress/
[root@admin my_wordpress]# ls
[root@admin my_wordpress]# vim docker-compose.yml
version: '2'  # docker-compose的版本  
services:  # 定义数据库服务
  db:  
    image: mysql:5.7  # 使用的 Docker 镜像名称和标签
    volumes:  
      - ./mysql_data:/var/lib/mysql   # 挂载的卷,将本地的 mysql_data 目录映射到容器内的 /var/lib/mysql  
    ports:  
      - "3306:3306"     # 端口映射,将主机的 3306 端口映射到容器的 3306 端口
    restart: always  # 设置容器始终重启,即使退出也会重启
    environment:  # 设置环境变量
      MYSQL_ROOT_PASSWORD: 123456  # MySQL root 用户的密码
      MYSQL_DATABASE: wordpress  # 创建的数据库名称
      MYSQL_USER: wordpress  # 创建的数据库用户名
      MYSQL_PASSWORD: wordpress   # 数据库用户的密码
  
  wordpress:  # 定义 WordPress 服务
    depends_on:  # 表示这个服务依赖于 db 服务,即 db 服务需要先启动
      - db  
    image: wordpress:latest  # 使用的 Docker 镜像名称和标签(默认为 latest)
    volumes:  
      - ./web_data:/var/www/html  # 挂载的卷,将本地的 web_data 目录映射到容器内的 /var/www/html
    ports:                   # 端口映射
      - "80:80"  
    restart: always  
    environment:  
      WORDPRESS_DB_HOST: db:3306  # WordPress 数据库的主机地址(由于使用 Docker Compose,所以可以直接使用服务名称)
      WORDPRESS_DB_USER: wordpress  
      WORDPRESS_DB_PASSWORD: wordpress  
  
volumes: # 定义命名的卷,可以在多个服务中重复使用 
  mysql_data:  
  web_data:
  
[root@admin my_wordpress]# docker compose up -d 
WARN[0000] /my_wordpress/docker-compose.yml: `version` is obsolete 
[+] Running 34/34
 ✔ wordpress Pulled                                                                                                     283.2s 
   ✔ a2abf6c4d29d Pull complete                                                                                         115.9s 
   ✔ c5608244554d Pull complete                                                                                         115.9s 
   ✔ 2d07066487a0 Pull complete                                                                                         171.2s 
   ✔ 1b6dfaf1958c Pull complete                                                                                         171.2s 
   ✔ 32c5e6a60073 Pull complete                                                                                         205.5s 
   ✔ 90cf855b27cc Pull complete                                                                                         205.5s 
   ✔ 8b0f1068c586 Pull complete                                                                                         205.6s 
   ✔ 5355461305e8 Pull complete                                                                                         205.6s 
   ✔ ad1eec592342 Pull complete                                                                                         205.6s 
   ✔ e03fbc76cb78 Pull complete                                                                                         206.3s 
   ✔ 1f5796e48b39 Pull complete                                                                                         206.3s 
   ✔ 72fbe8e1d4e7 Pull complete                                                                                         206.3s 
   ✔ 96edece66175 Pull complete                                                                                         206.3s 
   ✔ 5f46f0743de2 Pull complete                                                                                         251.0s 
   ✔ c9f9671a5e1f Pull complete                                                                                         252.2s 
   ✔ 3f543dcd35b1 Pull complete                                                                                         252.2s 
   ✔ c88e21a0c2a0 Pull complete                                                                                         252.2s 
   ✔ 964b4457a910 Pull complete                                                                                         252.3s 
   ✔ 0d55fb9a64ef Pull complete                                                                                         282.1s 
   ✔ fb009ff7c567 Pull complete                                                                                         282.1s 
   ✔ 4f058a67a50d Pull complete                                                                                         282.1s 
 ✔ db Pulled                                                                                                            388.0s 
   ✔ 72a69066d2fe Already exists                                                                                          0.0s 
   ✔ 93619dbc5b36 Already exists                                                                                          0.0s 
   ✔ 99da31dd6142 Already exists                                                                                          0.0s 
   ✔ 626033c43d70 Already exists                                                                                          0.0s 
   ✔ 37d5d7efb64e Already exists                                                                                          0.0s 
   ✔ ac563158d721 Already exists                                                                                          0.0s 
   ✔ d2ba16033dad Already exists                                                                                          0.0s 
   ✔ 0ceb82207cd7 Pull complete                                                                                         226.4s 
   ✔ 37f2405cae96 Pull complete                                                                                         371.2s 
   ✔ e2482e017e53 Pull complete                                                                                         371.2s 
   ✔ 70deed891d42 Pull complete                                                                                         371.2s 
[+] Running 3/3
 ✔ Network my_wordpress_default        Created                                                                            0.1s 
 ✔ Container my_wordpress-db-1         Started                                                                            0.6s 
 ✔ Container my_wordpress-wordpress-1  Started                                                                            0.9s 
[root@admin my_wordpress]# 

运行完成后访问wordpress网站 ,输入ip,一步步安装

 

安装过程省略

安装完成后重新输入IP访问

#默认的测试页面