构建MySQL
- 首先现在mysql镜像:docker pull mysql
- 启动mysql:
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
- 删掉启动mysql代码上第二句从新启动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
- 以交互形式进入mysql:docker exec -it mysql bash
- 将max_allowed_packet=128m追加到/etc/mysql/mysql.conf.d目录下的mysql.cnf中:
echo "max_allowed_packet=128" >> mysql.cnf
- 退出容器到主机:重启mysql:docker restart mysql
- 将容器的文件复制到宿主机上:在主机的/usr/local/docker/mysql/conf 目录下:将容器的文件复制过来:docker up mysql:/etc/mysql
- 将mysql目录下的文件移动到上级目录:
mv *.* ..
- 删除mysql文件夹:rm -fr mysql
- 先将之前的mysql容器停掉:docker stop mysql
- 删除/usr/local/docker/mysql目录下的data/删除:
rm -fr data/
- 重新启动mysql:docker restart mysql
- 此时会连不上数据库:删除已启动的mysql:docker rm -f mysql
- 然后启动mysql
- 此时可连接mysql
- 数据卷配置成功