docker创建mysql容器
一、配置文件
[mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_general_ci default-time_zone = '+8:00' log_timestamps=SYSTEM max_connections=1000 default-authentication-plugin=mysql_native_password skip-host-cache skip-name-resolve datadir=/var/lib/mysql #socket=/var/lib/mysql/mysql.sock #log-error=/var/log/mysql/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
注:utf8mb4可看做utf8的拓展,socket=/var/lib/mysql/mysql.sock不注释则需要增加使用-h ip登录
二、挂载映射:
docker run --name mysql8 -p 3306:3306 \
-v /home/mysql/conf:/etc/mysql/conf.d \
-v /home/mysql/data:/var/lib/mysql \
-v /home/mysql/files:/var/lib/mysql-files \
-v /home/mysql/log:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=lizhenfeng \
--network mynet -d mysql:8.0.19
-p 3306:3306:指定宿主机端口与容器端口映射关系
--name mysql:创建的容器名称
--restart=always:总是跟随docker启动
--privileged=true:获取宿主机root权限
--network [自定义网络]:设置网络
-v /usr/local/mysql/log:/var/log/mysql:映射日志目录,宿主机:容器
-v /usr/local/mysql/data:/var/lib/mysql:映射数据目录,宿主机:容器
-v /usr/local/mysql/conf:/etc/mysql:映射配置目录,宿主机:容器
-v /etc/localtime:/etc/localtime:ro:让容器的时钟与宿主机时钟同步,避免时区的问题,ro是read only的意思,就是只读。
-v /home/mysql/files:/var/lib/mysql-files:没有这个挂载会报错
-e MYSQL_ROOT_PASSWORD=xxxxxx:指定mysql环境变量,root用户的密码为xxxxxx,自己设置
-d mysql:latest:后台运行mysql容器,需要跟版本
参考链接:https://blog.csdn.net/qq_42971035/article/details/127831101
注:如果启动失败将-d后台运行换成-it交互模式查看运行情况