在服务器使用docker镜像创建容器来部署数据库,如mysql,这种方式是超级常见的,学习时间久了,有点过程会容易遗忘,特此写下博客记录,方便以后使用。
1.CentOS 7 安装docker环境
https://www.cnblogs.com/mazhilin/p/11553510.html
2.docker pull最新mysql镜像
获取mysql镜像
代码语言:txt复制docker search mysql //查询mysql镜像
docker pull mysql //拉取最新的mysql镜像
docker images //查看是否获取mysql镜像
3.基于mysql镜像创建并运行容器
根据服务器可用端口号与容器端口号映射关系,考虑是否需要挂载mysql容器目录到服务器目录,是否需要将容器创建到指定网络,设置root账户的密码(后面连接mysql需要使用)等,创建自己的mysql容器。
有端口映射 网络 挂载等:
代码语言:txt复制docker run --name image_mysql --privileged=true -p 8099:3306 --network datasetbuilder -v /home/data/mysql/datadir:/var/lib/mysql -v /home/data/mysql/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
有端口映射 挂载:
代码语言:txt复制docker run --name image_mysql --privileged=true -p 8099:3306 -v /home/data/mysql/datadir:/var/lib/mysql -v /home/data/mysql/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
参数说明:
–name:指定容器名
–p:映射宿主主机端口
-v:挂载宿主目录到容器目录
-e:设置环境变量,此处指定root密码
-d:后台运行容器
–privileged=true 防止挂载数据卷出现权限问题
代码语言:txt复制docker ps -a //查看容器是否运行成功
4.进入容器设置客户端访问权限
(1)进入mysql容器
代码语言:txt复制 docker exec -it 容器名/bin/bash //进入容器
如:
docker exec -it image_mysql /bin/bash //进入容器
如果想退出容器:输入exit,或者按Ctr D。
(2)连接mysql
mysql -u root -p
输入root账户的密码,即可连接成功
(3)修改root 可以通过任何客户端连接
代码语言:txt复制ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
(4)退出mysql连接
输入exit,或者按 Ctr D
代码语言:txt复制mysql>exit
5.宿主机或远程客户端工具访问
代码语言:txt复制mysql -h 127.0.0.1 -P 3306 -u root -p
然后可以使用navicat等mysql客户端操作该数据库。