赞
踩
1. 准备工作
2. 拉取镜像
docker search mysql
,如下图:docker search mysql:8.0
,如下图:docker pull mysql
默认拉取的版本是latest,也可以拉取指定版本:docker pull mysql:8.0
,如下图所示:docker images
, 如下图所示,出现mysql镜像3.创建配置文件
由于mysql的配置文件要是不挂在到宿主机目录下,修改或者变更配置文件不方便,故需要将配置文件挂载出来,可方便操作,数据同理。但是配置文件在哪里呢?可以查看dockerhub官方的mysql的dockerfile文件进行查看:dockerhub
在本地创建mysql的配置文件my.cnf
mkdir -p /opt/mysql/conf/
cd /opt/mysql/conf/
vim my.cnf
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
tmpdir = /var/lib/mysql
secure-file-priv= NULL
symbolic-links=0
skip-name-resolve
# 主服务器唯一ID
server-id=1
mkdir -p /opt/mysql/mysql
4.启动mysql
docker run -d -p 3306:3306 --name mysql -v /opt/mysql/conf/:/etc/mysql/conf.d/ -v /opt/mysql/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql
参数 | 说明 |
---|---|
-d | 标识启动mysql后台运行,切启动完成之后返回容器id |
-p 3306:3306 | 端口映射,前者3306为宿主机端口,后者3306为容器内部端口 |
–name mysql | 容器名 为 mysql 自定义 |
-v /opt/mysql/conf/:/etc/mysql/conf.d/ | -v 挂在 /opt/mysql/conf/:宿主机目录 /etc/mysql/conf.d/:容器内部目录,将容器内部目录挂载到宿主机目录下 |
-v /opt/mysql/mysql:/var/lib/mysql | 同理 |
-e MYSQL_ROOT_PASSWORD=123456 | 设置mysql密码为123456 |
mysql | 最后的mysql为之前所拉取的镜像名称 |
docker ps
,查看如下图:至此代表mysql已经安装成功。
4.进入容器内,连接mysql
docker exec -it 73eadb6f35e2 bash
#或者
docker exec -it 73eadb6f35e2 /bin/bash
mysql -uroot -p
回车,输入密码:再回车即可,出现如下图所示即成功登录,之后就是mysql的命令操作了,详情可查看博主的:mysql安装备注:
docker run -d -p 8080:8080 --name mysql--restart=always mysql
#还有将运行的容器设置根据docker服务启动而启动
docker update --restart=always 容器名字或者容器ID
docker安装的mysql进行定时备份
#!/bin/bash # 容器名称 容器ID,容器名称都行,建议使用id,不会被更改 container_name="73eadb6f35e2" # 数据库账户 mysql_name="root" # 数据库密码 mysql_pwd="123456" # 数据库备份根目录 backup_dir="/home/mysqlBak/data" bakup_log="/home/mysqlBak/log" # 备份数据库 DATABASES=$(/usr/bin/docker exec -i ${container_name} mysql -u${mysql_name} -p${mysql_pwd} -e "show databases" | grep -Ev "Database|sys|information_schema|performance_schema|mysql|brp_log") # 备份数据保留天数 backup_clean_day=5 #如果文件夹不存在则创建 if [ ! -d $backup_dir ]; then mkdir -p $back_dir; fi #循环数据库进行备份 for db in $DATABASES do echo echo ----------$BACKUP_FILEDIR/${db}_`date "+%Y_%m_%d_%H_%M_%S"`.sql.gz BEGIN---------- /usr/bin/docker exec -i ${container_name} mysqldump -u${mysql_name} -p${mysql_pwd} --default-character-set=utf8mb4 --single-transaction --source-data=2 --flush-logs --hex-blob --triggers --routines --events --databases ${db} | gzip > ${backup_dir}/${db}`date "+%Y_%m_%d_%H_%M_%S"`.sql.gz #写创建备份日志 echo "create $bakup_log/${db}-`date "+%Y_%m_%d_%H_%M_%S"`.dupm" >> $bakup_log/log.txt echo ----------$BACKUP_FILEDIR/${db}_`date "+%Y_%m_%d_%H_%M_%S"`.sql.gz COMPLETE---------- echo done echo "done" #删除5天之前的备份 find ${backup_dir} -type f -mtime +${backup_clean_day} -delete
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。