1.拉取Mysql镜像
docker pull mysql:5.7# 启动容器# MYSQL_ROOT_PASSWORD为ROOT密码# -e设置环境变量docker run --name some-mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7# 进入容器# 如果你不设置字符集是会有问题的# docker exec -it b50abf8936b6 /bin/bash# 使用env设置字符集docker exec -it b50abf8936b6 env LANG=C.UTF-8 /bin/bash# 登录Mysqlmysql -uroot -p123456
由于CentOS的默认编码不是UTF-8,所以命令行中是不能输入中文的,当我们用命令行插入中文Mysql记录时,是空字符串。当我们用其他识别UTF-8的客户端插入就可以成功。
查看字符集:
localeecho $LANG
2.带初始化SQL的Dockerfile
docker-entrypoint-initdb.d文件中是你的初始化SQL。
这个在docker官方Mysql镜像中有描述该文件夹的作用,就是用来初始化SQL的。
FROM mysql:5.7# 创建该路径WORKDIR /docker-entrypoint-initdb.dENV LANG=C.UTF-8# 将init.sql放到/docker-entrypoint-initdb.d中# ADD在此处的用处还有就是复制后执行SQL,COPY只有复制ADD init.sql .
