参考 https://dev.mysql.com/doc/mysql-installation-excerpt/5.7/en/docker-mysql-getting-started.html
1. 下载mysql 镜像
docker pull mysql/mysql-server:5.7
2. 创建本地映射目录
因为my.cnf和data目录都要永久保存,所以要做磁盘映射
mkdir -p /opt/tsingyun/mysql57/data
3. 保存my.cnf 到映射目录
修改编辑my.cnf,最终结果如下
# For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html [mysqld] # # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # log_bin # # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M skip-host-cache skip-name-resolve datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock secure-file-priv=/var/lib/mysql-files user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid default_storage_engine=InnoDB default-time-zone='+08:00' character-set-server=utf8mb4
4. 启动容器
docker run --name mysql57 --rm -p 3306:3306 -d -e MYSQL_ROOT_PASSWORD="123456" \ --mount type=bind,src=/opt/tsingyun/mysql57/my.cnf,dst=/etc/my.cnf \ --mount type=bind,src=/opt/tsingyun/mysql57/data,dst=/var/lib/mysql mysql/mysql-server:5.7
5. 修改mysql 权限
登录 到docker docker exec -it mysql57 bash mysql -uroot -p CREATE USER 'root'@'%' IDENTIFIED BY '123456'; GRANT ALL ON *.* TO 'root'@'%'; flush privileges;