docker-compose部署mysql

docker安装

yum install docker

编写docker-compose.yml文件

在根目录创建docker-compose.yml文件

vi docker-compose.yml

文件内容如下:

version: '2'
services:
    mysql:
        network_mode: "bridge"
        environment:
            MYSQL_ROOT_PASSWORD: "root"
            MYSQL_USER: 'root'
            MYSQL_PASS: 'root'
        image: "mysql"
        restart: always
        volumes:
            - "./db:/var/lib/mysql"
            - "./conf/my.cnf:/etc/my.cnf"
            - "./init/:/docker-entrypoint-initdb.d/"
        ports:
            - "3306:3306"

其中
network_mode:为容器的网络模式。
MYSQL_ROOT_PASSWORD:为数据库的密码,也就是root用户的密。
MYSQL_USER和MYSQL_PASS:代表用户名和密码。
image:为你拉取镜像的地址和版本,当然也可以换成自己的镜像仓库,这里建议使用官方的,目前未指定具体版本,默认为最近版本,也可以指定版本。
volumes:里面的参数为映射本地和docker容器里面的文件夹和目录。
ports:为映射端口。

编写mysql配置文件

创建conf文件夹:

mkdir conf

进入conf文件夹下创建my.cnf:

vi my.cnf

文件内容如下:

[mysqld]
user=mysql
default-storage-engine=INNODB
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

编写数据库初始化文件

创建init文件夹

mkdir init

进入init文件夹下创建初始化sql文件

vi init.sql

文件的内容如下(只为测试):

create database test;
use test;
create table user
(
id int auto_increment primary key,
username varchar(64) unique not null,
email varchar(120) unique not null,
password_hash varchar(128) not null,
avatar varchar(128) not null
);
insert into user values(1, "zhangsan","test12345@qq.com","123","avaterpath");
insert into user values(2, "lisi","test56789@qq.com","456","avaterpath");

创建db目录放置读取的文件

mkdir db

运行

docker-compose up -d --build

测试

使用navicat测试连接

注意

宿主机上init文件夹下的init.sql文件内容变更以后,可停止容器:

docker-compose stop

删除db文件夹下的内容,然后变更init.sql中,重新启动即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值