docker
  • docker教程
  • advanced
    • Docker 构建缓存指南
    • Docker分配CPU资源
    • Dockerfile+Maven插件构建SpringBoot镜像(推荐)
    • Dockerfile构建SpringBoot镜像
    • idea配置docker
    • Docker Jenkins进阶配置
    • 基于jenkins容器部署SpringBoot应用构建镜像(基于Dockerfile+Maven插件构建)
    • Maven插件构建SpringBoot镜像(二)
    • 基于Maven插件为SpringBoot应用构建镜像并推送到远程_私人仓库(Docker Hub)
    • Maven插件构建SpringBoot镜像(一)
    • Docker MongoDB进阶配置
    • Docker 多阶段构建指南
    • Docker MySql进阶配置
    • Docker network进阶配置
    • Docker Nginx进阶配置
    • Docker空(none)镜像处理
    • Docker pip install --no-cache-dir
    • Docker redis进阶配置
  • concepts
    • docker、docker engine和docker desktop区别
    • 架构
    • 什么是容器?
    • 什么是镜像?
    • 什么是Docker?
    • 什么是仓库?
  • docker-compose
    • Docker Compose 锚点的用法
    • docker-compose 编排多服务
    • docker-compose 常用命令
    • docker-compose 部署jenkins
    • docker-compose安装mySql
    • docker-compose网络配置
    • docker-compose安装nginx
    • docker-compose安装redis
    • docker Compose 示例1
  • docker-hub
    • Docker Hub账号服务说明
  • install
    • CentOS Docker 安装
    • Debian Docker 安装
    • Docker 安装 Apache
    • Docker 安装 CentOS
    • Docker 安装 Elasticsearch
    • Docker 安装 GitLab
    • Docker 安装 Jenkins
    • Docker 安装 MongoDB
    • Docker 安装 MySQL
    • Docker 安装 Nginx
    • Docker 安装 Node.js
    • Docker 安装 PHP
    • Docker 安装 Portainer
    • Docker Python 官方镜像使用说明(TAG说明)
    • Docker 安装 Python
    • Docker 安装 Redis
    • Docker 安装 Tomcat
    • Docker 安装 Ubuntu
    • Docker 安装 Wordpress
    • Docker 国内镜像加速
    • MacOS Docker 安装
    • Ubuntu Docker 安装
    • Windows Docker 安装
  • manual
    • Docker attach 命令
    • Docker build 命令
    • Docker 清理命令
    • Docker命令大全
    • Docker commit 命令
    • docker-compose-run-command
    • Docker cp 命令
    • Docker create 命令
    • Docker diff 命令
    • Docker rm 命令
    • Docker exec 命令
    • Docker export 命令
    • Docker history 命令
    • Docker images 命令
    • Docker import 命令
    • Docker info 命令
    • Docker inspect 命令
    • Docker kill 命令
    • Docker load 命令
    • Docker login/logout 命令
    • Docker logs 命令
    • Docker network 命令
    • Docker pause/unpause 命令
    • Docker port 命令
    • Docker 常见问题
    • Docker ps 命令
    • Docker pull 命令
    • Docker push 命令
    • Docker rename 命令
    • docker-resources
    • Docker rm 命令
    • Docker rm 命令
    • Docker run 命令
    • Docker save 命令
    • Docker search 命令
    • Docker start/stop/restart 命令
    • Docker stats 命令
    • Docker tag 命令
    • Docker top 命令
    • Docker version 命令
    • Docker version 命令
    • Docker wait 命令
    • diff
      • Docker Compose 和 docker-compose 区别
      • Docker import、export 与 save、load 命令 区别
  • usage
    • Docker docker-compose 使用
    • Docker 容器连接
    • Docker 容器使用
    • Docker Dockerfile Ptyhon实战配置-1
    • Docker Dockerfile Ptyhon实战配置之多阶段构建-2
    • Docker Dockerfile
    • Docker 镜像使用
    • Docker Machine
    • Docker 仓库管理
    • Swarm集群管理
  • assets
    • mysql
      • my.cnf
Powered by GitBook
On this page
  • docker-compose 安装
  • 编写docker-compose.yml文件
  • 部署
  • 常用命令

Was this helpful?

  1. docker-compose

docker-compose安装mySql

Previousdocker-compose 部署jenkinsNextdocker-compose网络配置

Last updated 4 months ago

Was this helpful?

docker-compose 安装

编写docker-compose.yml文件

version: '3'
services:
  mysql:                                            #mysql服务节点
    image: mysql:5.7                                #mysql镜像,如果镜像容器没有会去自动拉取
    container_name: mysql                           #容器的名称
    command:                                        #构建容器后所执行的命令
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_unicode_ci
      --lower-case-table-names=1    #忽略数据表明大小写 
    restart: always                                 #跟随docker的启动而启动
    environment:
      MYSQL_ROOT_PASSWORD: root                     #设置root帐号密码
    ports:
      - 3306:3306
    volumes:
      - /mydata/mysql/data:/var/lib/mysql           #数据文件挂载
      - /mydata/mysql/conf.d:/etc/mysql/conf.d      #配置文件挂载
      - /mydata/mysql/log:/var/log/mysql            #日志文件挂载

配置参数说明:

  • image 镜像名称

  • container_name 容器名称

  • command #容器启动后执行的命令

  • --character-set-server=utf8mb4 设置服务器字符编码,可通过my.cnf覆盖

  • --collation-server=utf8mb4_unicode_ci 设置服务器字符编码,可通过my.cnf覆盖

  • --lower-case-table-names=1 #忽略数据表明大小写 注意:该属性只有初始化构建时才生效,my.cnf无法覆盖,如果没有设置的话,需要重新配置mysql才可以且记要备份挂载的数据文件,否则会死的很惨

  • restart 重启的方式,常用 跟随docker的启动而启动

  • environment 设置环境变量

    • MYSQL_ROOT_PASSWORD: root #设置root帐号密码

  • ports 宿主主机端口映射到容器端口

  • volumes 数据卷的挂载

部署

准备工作

创建目录

$ mkdir -p /mydata/mysql/data/db \
 -p /mydata/mysql/data/conf \
 -p /mydata/mysql/log

说明: 最新官方MySQL(5.7.19)的docker镜像在创建时映射的配置文件目录有所不同 MySQL(5.7.19)的默认配置文件是 /etc/mysql/my.cnf 文件。如果想要自定义配置, 建议向 /etc/mysql/conf.d 目录中创建 *.cnf 文件。新建的文件可以任意起名,只要保证后缀名是 cnf 即可。 新建的文件中的配置项可以覆盖 /etc/mysql/my.cnf 中的配置项。 又由于宿主主机 /mydata/mysql/conf.d 目录 已经挂载到docker容器 /etc/mysql/conf.d 目录,所以只需在 /mydata/mysql/conf.d 目录下自定义*.cnf文件即可生效。

配置文件模板

将 docker-compose.yml 文件上传到Linux服务器 /mydata 目录下

启动mysql

$ cd /mydata
$ docker-compose up mysql -d  #指定mysql 后台运行
[+] Running 1/1
 ⠿ Container mysql  Started   

验证

docker exec -it mysql  mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

常用命令

官方配置文件模板

我的配置文件模板

docker-compose 安装
my.cnf
my.cnf
docker-compose常用命令