拉取 MySQL 镜像
docker pull mysql:5.7.22
运行容器
docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7.22
- -p 3306:3306:将容器的3306端口映射到主机的3306端口
- -v /usr/local/docker/mysql/conf:/etc/mysql:将主机当前目录下的 conf 挂载到容器的 /etc/mysql
- -v /usr/local/docker/mysql/logs:/var/log/mysql:将主机当前目录下的 logs 目录挂载到容器的 /var/log/mysql
- -v /usr/local/docker/mysql/data:/var/lib/mysql:将主机当前目录下的 data 目录挂载到容器的 /var/lib/mysql
- -e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码
使用客户端工具链接 MySQL
若导入数据库出现空间太小问题
需要使用数据卷更改配置
以下列配置启动容器
docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7.22
将容器中的配置拷贝到宿主机中
docker cp mysql:/etc/mysql/ .
将所有配置文件移入 conf 目录中,并删除 mysql 目录
root@ubuntu:/usr/local/docker/mysql/conf/mysql# mv *.* ..
root@ubuntu:/usr/local/docker/mysql/conf/mysql# cd ..
root@ubuntu:/usr/local/docker/mysql/conf# rm -fr mysql
删除原有的容器
docker rm -f mysql
进入 /conf/mysql.conf.d 目录下 往 mysqld.cnf 追加
echo "max_allowed_packet = 128M" >> mysqld.cnf
以数据卷的方式重新启动容器
docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7.22
重新导入