docker 启动mysql5.7服务

docker 启动mysql5.7服务

前提条件:docker已安装

启动mysql5.7服务命令

docker run  -d --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

以上命令运行完毕,一个mysql服务器就启动好了,可以访问对应ip+端口连接到数据库(记得云服务器要先开放端口号)

但是

以上命令还存在一些问题,就是没有挂载卷,当该容器销毁时,里面的数据也没了

为了避免以上情况,保证容器销毁时,数据还在,做法如下

首先需要从容器中拿到mysql的一些重要文件

mysql的配置文件在/etc/mysql

mysql的日志文件在/var/log/mysqld.log

mysql的数据文件在/var/lib/mysql

宿主机中先建立一些文件夹来存放这些文件

cd ~
mkdir volumes
cd volumes
mkdir mysql5.7
cd mysql5.7
mkdir conf log data

然后使用docker cp命令将容器中的文件复制到宿主机中

docker cp mysql5.7:/etc/mysql/. ~/volumes/mysql5.7/conf
docker cp mysql5.7:/var/log/. ~/volumes/mysql5.7/log
docker cp mysql5.7:/var/lib/mysql/. ~/volumes/mysql5.7/data

删除原来的容器

docker rm -f mysql5.7

使用卷挂载的方式启动容器

docker run \
--name mysql5.7 \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-d \
-v ~/volumes/mysql5.7/data:/var/lib/mysql \
-v ~/volumes/mysql5.7/conf:/etc/mysql \
-v ~/volumes/mysql5.7/log:/var/log \
--restart=always mysql:5.7

由于上述命令使用了卷映射,文件存放在宿主机,不会随着容器的销毁而销毁

至此,基于docker的mysql服务就启动好了

你可能感兴趣的:(数据库,Docker,docker,mysql,数据库)