centos7-dock-compose安装及部署mysql服务

简介

Docker-Compose是Docker官方的开源项目,用于实现Docker容器集群的快速编排。

Compose简介

Compose是用于定义和运行多容器 Docker 应用程序的工具,通过Compose,可以使用YML文件来配置应用程序所需要的所有服务。然后,使用一个命令,就可以从YML文件配置中创建并启动所有服务。

Compose使用步骤

  1. 使用Dockerfile定义应用程序的环境。
  2. 使用docker-compose.yml配置应用程序的服务,这个配置文件可以按照规则配置任意N个docker容器信息。
  3. 执行docker-compose up命令来启动并运行整个应用程序。

功能

  1. 定义和运行多容器应用:Docker Compose允许你通过一个配置文件来定义多个容器的运行方式,并轻松地启动、停止和重启整个应用。
  2. 容器编排:Docker Compose支持容器的编排,可以根据容器的依赖关系自动启动和停止容器,确保应用在运行时具有正确的环境。
  3. 网络配置:Docker Compose支持自定义网络配置,使得容器之间的通信更加灵活和可靠。
  4. 数据卷管理:Docker Compose支持数据卷的挂载和管理,可以轻松地共享和持久化容器数据。
  5. 扩展性:Docker Compose具有良好的扩展性,可以轻松地添加和删除容器,以满足应用的需求。

组成

  1. 工程(Project)
  • 由一组关联的应用容器组成一个完整的业务单元,在docker-compose.yml文件中定义。
  • Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程,若无特殊指定,工程名即为当前目录名。
  • Docker-Compose的工程配置文件默认路径是当前目录下的docker-compose.yml,可使用yml或yaml作为文件扩展名,可通过环境变量COMPOSE_FILE或-f参数自定义配置文件,其定义了多个有依赖关系的服务及每个服务运行的容器。
  • Docker-Compose允许用户通过一个单独的 docker-compose.yml 模板文件(YAML格式)来定义一组相关联的应用容器为一个项目。
  1. 服务(Service)
  • 一个应用的容器,例如支付服务、订单服务、库存服务、Nginx服务、Mysql服务等。
  • 一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像、参数、依赖。
  • 一个服务当中可包括多个容器实例。
  • Docker-Compose并没有解决负载均衡的问题,因此需要借助其它工具实现服务发现及负载均衡,比如:Consul。
  1. 容器(Container)

安装

  1. 前提:必须先安装Docker。
  2. 打开https://github.com/docker/compose/releases,往下拖动滚动条,找到docker-compose-linux-x86_64安装包进行下载。

  1. 下载后将文件名重命名为docker-compose
  2. 将docker-compose文件通过工具上传到Centos系统下的url/local/bin目录中。

  1. 授予执行权限
sudo chmod +x /usr/local/bin/docker-compose

  1. 创建软连接,类似于windows系统的快捷方式
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

  1. 查看docker-compose版本
docker-compose version

部署服mysql服务

  1. 创建目录,将docker-compose文件都存放在此目录,并在该目录下新建mysql文件夹。
mkdir -p /home/docker-compose
cd /home/docker-compose
mkdir mysql
cd mysql

  1. 在mysql目录下创建docker-compose.yml
touch docker-compose.yml
  1. 编辑文件
vim docker-compose.yml

插入配置信息并保存,这里演示启动两个mysql服务。

注意:yaml文件编写一定要注意格式。

version: '1.0' #自定义版本
services: #配置服务,可以配置多个服务
    mysqlservice1: #自定义服务名称
         image: mysql:latest #镜像以及版本
         container_name: mysql_container1 #容器名称
         restart: always #是否跟随系统启动自动启动
         ports: #端口映射,宿主机对外暴露端口:容器端口
            - 3309:3306
         volumes: #目录映射
            - /root/docker-compose/mysqlservice1/data:/var/lib/mysql-compose
            - /root/docker-compose/mysqlservice1/config:/etc/mysql-compose/my.cnf
         environment: #mysql的环境配置
           MYSQL_ROOT_PASSWORD: 123456
    mysqlservice2: #自定义服务名称
         image: mysql:latest #镜像以及版本
         container_name: mysql_container2 #容器名称
         restart: always #是否跟随系统启动自动启动
         ports: #端口映射,宿主机对外暴露端口:容器端口
            - 3310:3306
         volumes: #目录映射
            - /root/docker-compose/mysqlservice2/data:/var/lib/mysql-compose
            - /root/docker-compose/mysqlservice2/config:/etc/mysql-compose/my.cnf
         environment: #mysql的环境配置
           MYSQL_ROOT_PASSWORD: 123456

  1. 启动容器
docker-compose -f /home/docker-compose/mysql/docker-compose.yml up -d

#参数解析
-d:表示后台运行
up: 启动
-f: 指定docker-compose文件位置

其它命令

docker-compose down #停止容器
docker-compose restart #重启容器
  1. 查看容器信息
docker ps

  1. 测试连接mysql

docker-compose常用命令

格式:docker-compose + 命令。

build 重新构建服务
ps 列出容器
up 创建并启动容器
exec 容器内执行命令
scale 指定一个服务容器启动数量
top 显示容器进程
logs 查看容器输出
down 删除容器、网络、数据卷和镜像
stop/start/restart 停止/启动/重启服务
posted @ 2024-12-04 16:13  相遇就是有缘  阅读(188)  评论(0)    收藏  举报