以 MySQL 5.7 安装为例。
拉取镜像
docker pull mysql:5.7
导入镜像
docker load < mysql.tar
由于避免容器停止造成数据丢失的情况,我们需要挂载宿主机的真实目录到容器中。(日志目录
、数据目录
、配置目录
)
由于我把家目录容量配置过大,所以把数据放到了 home 文件夹下。
mkdir -p /home/data/mysql/logs /home/data/mysql/data /home/data/mysql/conf
宿主机操作
cd /home/data/mysql
vim my.cnf
[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
123456 替换成你的数据库密码,这里我把端口号设置成了33060
,当然对外3306
也可以。
docker run --restart=always -p 33060:3306 --name mysql -v /home/data/mysql/conf:/etc/mysql -v /home/data/mysql/logs:/var/log/mysql -v /home/data/mysql/data:/var/lib/mysql -v /home/data/mysql/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
参数说明
docker exec -it mysql bash
123456 替换成你的数据库密码
mysql -uroot -p123456