mysql5.7 容器创建与连接
1.拉取mysql5.7镜像
docker pull mysql:5.7
2.查看是否拉取成功
docker images
3.创建mysql挂载目录
cd /home/zhangdan
mkdir mysql
cd mysql
mkdir conf
cd conf
touch mysqld.cnf
vi mysqld.cnf
cd /home/zhangdan/mysql
touch mysql.bash
vi mysql.bash
chmod +x mysql.bash
mysqld.cnf
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
#log-error = /var/log/mysql/error.log
# By default we only accept connections from localhost
#bind-address = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character-set-server=utf8
#该设置在sql进行group查询是可以查出所有字段,也可不设置
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
#修改最大返回数据长度
group_concat_max_len=102400
#忽略大小写
lower_case_table_names=1
max_allowed_packet=256M
mysql.bash
docker run -p 3306:3306 --restart=always --name mysql --net mynet -v /home/zhangdan/mysql/conf/mysqld.cnf:/etc/mysql/conf.d/mysqld.cnf -v /home/zhangdan/mysql/logs:/var/log/mysql -v /home/zhangdan/mysql/data:/var/lib/mysql -v /etc/localtime:/etc/localtime -e MYSQL_ROOT_PASSWORD=zhongyi@123 -d mysql:5.7
4.创建容器
docker run -p 3306:3306 --restart=always --name mysql --net mynet -v /home/zhangdan/mysql/conf/mysqld.cnf:/etc/mysql/conf.d/mysqld.cnf -v /home/zhangdan/mysql/logs:/var/log/mysql -v /home/zhangdan/mysql/data:/var/lib/mysql -v /etc/localtime:/etc/localtime -e MYSQL_ROOT_PASSWORD=xxxx -d mysql:5.7
命令说明
-p 3307:3306 # 指定端口映射,将容器的3306端口映射到宿主机的3307端口,格式为:主机(宿主)端口:容器端口
–restart=always #不受Exit Code的影响,总是重启
–name mysql #为容器指定一个名称
-v /home/zhangdan/mysql/conf/mysqld.cnf:/etc/mysql/conf.d/mysqld.cnf # 挂载目录,将主机当前目录下的 /docker/mysql/conf/my.cnf 挂载到容器的 /etc/mysql/conf.d/my.cnf (可以指定是一个文件夹,也可以是一个文件)
-v /etc/localtime:/etc/localtime #将宿主机的时间挂载到容器内部,如果不挂载这个,可能会出现容器内部时间和当前时间不匹配,就会出现我们数据库数据出现时间不对问题
-e MYSQL_ROOT_PASSWORD=xxxx #设置环境变量;这里我们初始化 root 用户的密码为xxxx
-d mysql:5.7 # 后台运行容器,并返回容器ID;(版本不是latest,需要带上对应的版本号)
5.查看是否已经启动
docker ps -a
若是没有启动成功,则执行以下命令查看日志
docker logs mysql
6.其他命令:
进入容器
docker exec -it 容器id /bin/bash
删除容器:
docker rm -f 容器id
容器重启
docker restart 容器id