二、docker-compose安装mysql5.7

流程:先使用快速启动,然后将配置文件本地化到自己创建的的本地化目录中,之后在docker-compose文件中配置挂载目录,之后通过docker-compose启动

一、快速启动版

  • 拉取镜像
docker pull mysql:5.7            #拉取镜像
  • 启动
docker run -itd --name mysql_01 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
或者
docker run -d -p 3306:3306 --privileged=true -v /data/mysql/conf/my.cnf -v /data/mysql/data -e MYSQL_ROOT_PASSWORD='root123456' --name mysql01 mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
  • 命令介绍
-i: 交互式操作。
-t: 终端。
-d: 在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。
–name: 容器名称(非必需)
-p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
e MYSQL_ROOT_PASSWORD=123456:指定环境变量,这里设置 MySQL 服务 root 用户的密码
  • 检测是否安装并启动成功
docker ps

二、使用docker-compose安装

  • 将快速启动中的目录复制到本地目录中
docker cp [容器id]:/var/lib/mysql /data/plugings/mysql/mysql5.7/
mv mysql lib
docker cp [容器id]:/etc/mysql /data/plugings/mysql/mysql5.7
mv mysql conf
  • 自定义docker-compose.yml
version: "2"
services:
  mysql:
    container_name: mysql_01
    restart: always
    networks:
      - resource_bridge
    image: mysql:5.7                    #拉取的镜像版本,也可替换成自己的镜像
    #env_file:
      #- ../env/mysql.env
    environment:
      MYSQL_ROOT_PASSWORD: "root123456"     #数据库的密码,也就是root用户的密码
      MYSQL_USER: 'test'
      MYSQL_PASS: 'test123456'  
    volumes:                            #里面的参数为映射本地和docker容器里面的文件夹和目录
      - /data/plugings/mysql/mysql5.7/lib:/var/lib/mysql
      - /data/plugings/mysql/mysql5.7/conf:/etc/mysql/
    ports:                              #映射端口
      - "3306:3306"
networks:                                #自定义网络,用于通讯
  resource_bridge:
    external:
      name: resource_bridge
  • 启动mysql_5.7.yaml服务
docker-compose -f docker-compose.yml up -d        #加上-d表示后台运行,不进入容器中
  • 关闭服务
docker-compose -f docker-compose.yaml down
  • 可以设置启动初始化脚本,在volumes下添加对应的脚本目录
    1. mysql_init_db.yaml
version: "2"
services:
  mysql:
    container_name: mysql_01
    image: mysql:5.7                        #拉取的镜像版本,也可替换成自己的镜像
    #env_file:
      #- ../env/mysql.env
    environment:
      MYSQL_ROOT_PASSWORD: "root123456"     #数据库的密码,也就是root用户的密码#
#      MYSQL_USER: 'test'
#      MYSQL_PASS: 'test123456'  
    volumes:                                #里面的参数为映射本地和docker容器里面的文件夹和目录
      - /data/mysql:/var/lib/mysql
      - ./init:/docker-initdb.d/            #sql初始化目录
    ports:                                  #映射端口
      - "3306:3306"
  • sql脚本以及目录
    1. 创建初始化目录
      1. mkdir -p init
    2. 创建初始化脚本
      • vi /init/db_demo_01.sql
    3. 脚本内容
    • create database db_demo_01 default charset 'utf8';
      
      use db_demo_01;
      create table user
      (
      id int auto_increment primary key,
      username varchar(64) unique not null,
      email varchar(120) unique not null
      );
      insert into user values(1, "zs","zs@qq.com");
      insert into user values(2, "ls","ls@qq.com");
  • 启动mysql_init-db.yaml服务
    • docker-compose -f mysql_init_db.yaml up

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值