1.拉取Mysql镜像

  1. docker pull mysql:5.7
  2. # 启动容器
  3. # MYSQL_ROOT_PASSWORD为ROOT密码
  4. # -e设置环境变量
  5. docker run --name some-mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
  6. # 进入容器
  7. # 如果你不设置字符集是会有问题的
  8. # docker exec -it b50abf8936b6 /bin/bash
  9. # 使用env设置字符集
  10. docker exec -it b50abf8936b6 env LANG=C.UTF-8 /bin/bash
  11. # 登录Mysql
  12. mysql -uroot -p123456

由于CentOS的默认编码不是UTF-8,所以命令行中是不能输入中文的,当我们用命令行插入中文Mysql记录时,是空字符串。当我们用其他识别UTF-8的客户端插入就可以成功。

查看字符集:

  1. locale
  2. echo $LANG

2.带初始化SQL的Dockerfile

docker-entrypoint-initdb.d文件中是你的初始化SQL。
这个在docker官方Mysql镜像中有描述该文件夹的作用,就是用来初始化SQL的。

  1. FROM mysql:5.7
  2. # 创建该路径
  3. WORKDIR /docker-entrypoint-initdb.d
  4. ENV LANG=C.UTF-8
  5. # 将init.sql放到/docker-entrypoint-initdb.d中
  6. # ADD在此处的用处还有就是复制后执行SQL,COPY只有复制
  7. ADD init.sql .