如下过程,以官方mysql 5.7镜像为基础,构建了一个新的mysql镜像,仅替换了mysql配置文件。
1.下载docker mysql 5.7官方镜像,命令如下:
docker pull mysql:5.7
下载完成后,查看镜像是否已经存在,如下图:
2.任意目录下,放置好自己的mysql配置文件,名称为config-file.cnf,并新建文件Dockerfile,如下图:
3.在Dockerfile文件中,写入如下内容:
FROM mysql:5.7MAINTAINER shangyingbin
COPY config-file.cnf /etc/mysql/conf.d/
4.构建镜像,命令如下:
docker build -t omc/mysql:1.0 .
结果如下图:
5.查看镜像,刚刚创建的镜像已经出现在列表中了,如下图:
6.以此镜像,启动一个容器,命令如下:
docker run --name mysql -e MYSQL_ROOT_PASSWORD=12345 -p 3306:3306 -v /home/docker-mysql-data:/var/lib/mysql/ -d omc/mysql:1.0
解释:
--name mysql,为容器命名,方便识别,也方便后续的操作,比如启动、停止容器,便可以用名字代表容器,如docker stop mysql
-e MYSQL_ROOT_PASSWORD=12345,指定mysql中root用户的密码,为12345
-p 3306:3306,指定端口映射,将容器内的3306端口,映射到本机的3306端口,这样外部即可通过本机的IP和3306端口即可访问数据库了
-v /home/docker-mysql-data:/var/lib/mysql/,将容器内mysql的数据目录/var/lib/mysql,映射到本机的/home/docker-mysql-data目录下
7.查看镜像是否已经启动,命令如下:
8.可通过mysql工具连接此服务,验证服务启动是否正常。
9.停止服务命令如下:
docker stop mysql
10.重新启动服务,命令如下:
docker start mysql
11.进入容器,命令如下:
docker exec -it mysql /bin/bash
12.在容器内,命令行方式登录mysql,命令如下:
mysql -h 127.0.0.1 -uroot -p
提示输入密码,密码即为创建容器时指定的12345
13.要退出容器,先退出mysql,然后直接执行exit命令即可,退出后,容器依然正常运行。