1、拉取mysql镜像
搜索mysql镜像:
[root@iZbp13sno1lc2yxlhjc4b3Z ~]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 9188 [OK]
拉取mysql镜像:
[root@iZbp13sno1lc2yxlhjc4b3Z ~]# docker pull mysql:5.7.24
其中mysql:5.7.24是指拉取的mysql的版本为5.7.24,如果不指定版本,则拉取最新的。
查看已拉取的镜像:
[root@iZbp13sno1lc2yxlhjc4b3Z ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7.24 ba7a93aae2a8 14 months ago 372MB
2、创建mysql容器
创建tomcat容器:
[root@iZbp13sno1lc2yxlhjc4b3Z ~]# docker run -itd --name mysql -p 3316:3306 -v /data/docker_v/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7.24
其中:
--name mysql 容器的名称为mysql
-p 3316:3306 将主机3316端口映射到容器3306端口,访问数据库时直接访问主机3316端口
-v /data/docker_v/mysql/data:/var/lib/mysql 将容器mysql的数据文件目录映射到主机目录,这样数据库数据被持久化到主机,保证数据不丢失。
-e MYSQL_ROOT_PASSWORD=root 设置mysql的ROOT用户密码为root
-itd 后台启动
mysql:5.7.24 创建容器使用的镜像及版本
查看创建好的容器实例:
[root@iZbp13sno1lc2yxlhjc4b3Z ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
f6e302b02f48 mysql:5.7.24 "docker-entrypoint.s…" 13 days ago Up 9 days 33060/tcp, 0.0.0.0:3316->3306/tcp mysql
安装成功,进入容器内部访问mysql服务:
[root@iZbp13sno1lc2yxlhjc4b3Z ~]# docker exec -it mysql bash
root@f6e302b02f48:/# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4771
Server version: 5.7.24 MySQL Community Server (GPL)
3、mysql配置文件
mysql5.7默认配置文件是 /etc/mysql/my.cnf 文件。如果想要自定义配置,建议向 /etc/mysql/conf.d 目录中创建 .cnf 文件。
root@f6e302b02f48:/etc/mysql# ls
conf.d my.cnf my.cnf.fallback mysql.cnf mysql.conf.d
root@f6e302b02f48:/etc/mysql# cd conf.d/
root@f6e302b02f48:/etc/mysql/conf.d# ls
docker.cnf mysql.cnf mysqldump.cnf
另外为了配置方面,建议把/etc/mysql/conf.d配置文件目录隐射到主机目录。在创建mysql容器时添加 -v /docker_v/mysql/conf:/etc/mysql/conf.d 即可。
4、特别提醒
一定要将mysql的数据文件映射到主机目录,这样可以保证数据库的持久化。否则,容器在重启后数据会丢失。mysql容器本身并不会持久化数据,重启后就会回到初始化时状态。这里是一个坑,大家注意了!!!
网友评论