拉取镜像
docker pull mysql:5.7.37
创建自定义网络
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 workflow_net
创建自定义网络的好处就是不用--link,可以直接使用容器名称或容器ID链接数据库。当然,这一步也可以省略,其它容器中的应用要链接该容器中的mysql服务则需要使用 --link的方式来链接数据库。
运行MySQL
docker run --name mysql_db -p 3306 -e MYSQL_ROOT_PASSWORD=123456 -d --net workflow_net mysql:5.7.37
配置MySQL
Docker默认安装的MySQL编码不支持utf8mb4,首先在宿主机当前目录创建一个my.cnf,写好内容之后复制到容器中替换默认的配置文件。 执行shell脚本,编写文件:
vi ./my.cnf
回车之后键入如下内容:
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
init_connect='SET collation_connection = utf8mb4_general_ci'
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
skip-character-set-client-handshake
粘贴好内容之后按ESC键在vi命令行输入:wq保存该文件。 执行如下命令,将刚创建的文件cp到容器内部:
docker cp ./my.cnf mysql_db:/etc/mysql/
最后重启服务完成安装以及配置
docker restart mysql_db
注意:本文归作者所有,未经作者允许,不得转载