docker系列之——docker部署mysql服务

之间我有在博客里面介绍过如何在Debian/Ubuntu等系统安装docker,但是安装了以后我们要在上面开发的话需要部署对应的服务,那么Mysql作为当前企业用的最主流的线性数据库之一,几乎是必装的,那么如何在docker是部署Mysql服务呢?

主要步骤有这样几步:

首先第一步:

获取mysql 的镜像文件

docker pull mysql:5.7

拉取完成之后,可以使用docker images 来查看mysql镜像状态

第二部:

在我们要操作的目录下面放入,我们要初始化的sql文件(类似下面这个文件的)

 

第三步:使用Dockerfile定制镜像

在初始化的数据库文件(init.sql)同级目录里面,添加一个Dockerfile文件(文件名字就叫Dockerfile,不需要后缀)

FROM mysql:5.7
WORKDIR /docker-entrypoint-initdb.d
ADD init.sql .

第四步:构建镜像

docker build -t mysql-sampledb /root/work/docker/

其中的mysql-sampledb是我们指定的镜像的名字,/root/work/docker/是指我们指定的路径

第五步:构建容器

docker run -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql-sampledb

如果有错误的话,我们可以在输出的信息里面看到报错信息;成功的情况如上图所示,会提示mysqld:ready for connections

异常处理:

如果执行的过程中,我们的init.sql文件里面有报错的话,要怎么办呢?

在这里,我建议你从第4步开始,在build的命令里面把mysql-sampledb的名字换一下即可,然后在第5步里面的名字也要换掉。

最后,如果你想要删除到构建失败的镜像,怎么办呢?

直接运行docker rm xxxx(镜像名) 十有八九是会出错的,因为这个镜像被相关的容器关联使用,所以首先要删除对应的使用该镜像的容器之后,才能正确的删除镜像。

具体的命令如下:

docker container ls -a
docker container rm container-name
docker image ls -a 
docker image rm 501(这里只是一个示范,可以通过类似501这样的镜像来做一个指向)

 


版权声明:本文为Mr_Gorgre原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。