拉取镜像

1
docker pull mysql:5.7

创建挂载目录

如果不创建挂载目录,一旦容器重启,则数据会全部丢失。

1
mkdir -p /usr/local/software/mysql/data /usr/local/software/mysql/logs /usr/local/software/mysql/conf

创建mysql配置文件

1
2
3
cd /usr/local/software/mysql
touch my.cnf
vim my.cnf

配置文件内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

创建容器

1
docker run --restart=always -p 3306:3306 --name mysql5.7 -v /usr/local/software/mysql/conf:/etc/mysql -v /usr/local/software/mysql/logs:/var/log/mysql -v /usr/local/software/mysql/data:/var/lib/mysql -v /usr/local/software/mysql/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
  • --restart=always:当docker重启时,容器也重启。
  • --name:容器名称。
  • -p 3306:3306:宿主机:容器端口映射。
  • -v source:target:目录挂载。
  • -e:设置环境变量(mysql密码)。
  • -d:后台启动。