docker的安装参考
docker pull mysql
#mysql日志目录
#msql数据文件存放目录
#mysql配置文件目录
cd /docker
mkdir -p mysql/data mysql/logs mysql/conf
注意:my.cnf自定义配置文件必须添加user=mysql才能启动
[mysqld]
user=mysql
其他参数可以自己添加
docker run --name sqldb -p 13306:3336 -p 13360:33060 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_ROOT_HOST=*.*.*.* \
-e MYSQL_USER=august -e MYSQL_PASSWORD=123456 \
-e MYSQL_LOG_CONSOLE=true -e SLOW_QUERY_LOG=ON -e SLOW_QUERY_LOG=ON \
-e TZ=Asia/Shanghai \
-v /docker/mysql/conf/my.cnf:/etc/my.cnf -v /docker/mysql/conf/scripts/:/docker-entrypoint-initdb.d/ \
-v /docker/mysql/data:/var/lib/mysql -v /docker/mysql/log/:/var/log/ \
--restart always \
--privileged=true \
-d mysql/mysql-server \
--default-authentication-plugin=mysql_native_password
docker exec -ti sqldb chown mysql /var/log
上面的能创建august用户和密码,root密码会不生效,密码设置为空。没有自动执行sql脚本初始化的能力。
下面这个能自动运行sql完成表空间和表的初始化。用户可以在脚本中添加。
docker run --name mysqldb -p 13306:3336 -p 13360:33060 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_ROOT_HOST='%' \
-e MYSQL_LOG_CONSOLE=true -e SLOW_QUERY_LOG=ON -e SLOW_QUERY_LOG=ON \
-e TZ=Asia/Shanghai \
-v /docker/mysql/conf/my.cnf:/etc/my.cnf -v /docker/mysql/conf/scripts/:/docker-entrypoint-initdb.d/ \
-v /docker/mysql/data:/var/lib/mysql -v /docker/mysql/log/:/var/log/ \
--restart always \
--privileged=true \
-d mysql/mysql-server \
--default-authentication-plugin=mysql_native_password
容器内部需要对var/log添加mysql权限,然后重启配置文件里的日志参数才会生效。
这个挂载的文件夹不删。以后重建mysql的容器日志可以自动生成。
查看启动日志
docker logs sql
#查看容器,不带-l看不到启动失败的。
docker ps -a
docker container ls
-a :显示所有的容器,包括未运行的。
-l :显示最近创建的容器。
-f :根据条件过滤显示的内容。
–format :指定返回值的模板文件。
#失败的需要rm调,不然再次运行会提示已经运行了容器了
docker rm sql
#进入容器
docker exec -it sql bash