1.启动一个mysql服务器实例
从镜像站获取mysql的镜像
$ docker pull mysql
默认的版本mysql镜像的最新版(latest)
获取指定的版本的镜像
$ docker pull mysql:5.7
也可以直接通过命令启动mysql 的实例:
$ docker run -d --name mysql-fixdq -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
直接使用docker run 创建时,如果本地没有mysql镜像,会自动去仓库中下载。
这样就创建了一个mysql服务器的容器实例,--name设置容器的别名,通过环境变量MYSQL_ROOT_PASSWORD设置数据库的root密码,5.7标签指定mysql镜像的版本。
查看容器:docker ps (docker container ls )大致这样
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 412fbf7512b5 mysql:5.7 "docker-entrypoint..." 6 hours ago Up 6 hours 0.0.0.0:3306->3306/tcp, 33060/tcp mysql5.7
2.使用自定义mysql 配置文件,指定数据文件地址
下面是我使用的启动命令
$ docker run -d --name mysql5.7 -p 3306:3306 -v /data/mysql/datadir/:/var/lib/mysql -v /data/mysql/conf.d/:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
默认情况下,MySQL的启动配置文件是/etc/mysql/my.cnf
,而/etc/mysql/conf.d
目录下的存在任何.cnf
格式的文件时,都会使用该文件中配置项替换默认配置。
因此,如果要使用自定义配置,可以在宿主机创建一个配置文件,然后在创建容器时通过-v
参数,以数据卷的方式将自定义配置挂载到mysql
容器的/etc/mysql/conf.d
目录下。
-v /data/mysql/datadir/:/var/lib/mysql
将宿主机的目录/data/mysql/datadir/ 挂在到容器的/var/lib/mysql下
-v /data/mysql/conf.d/:/etc/mysql/conf.d
将宿主机的目录/data/mysql/datadir/ 挂在到容器的/var/lib/mysql下
参考资料: