docker部署及创建数据库有感

docker部署mysql

因为是第一次采用docker来部署mysql,在部署中遇到不少问题,也花费了数个小时才完成部署,总结一下过程,即是为加深对docker命令的操作,也是加深自己对docker以及mysql使用的理解,同时写出这篇博客分享给大家,也许能帮多初学者,一样会走遇到我所碰到的问题。

拉取mysql镜像

首先确保已经安装过docker,如果没有安装docker, 可以执行如下命令先安装docker:

yum install -y docker

采用docker命令拉取mysql镜像是非常简单的,如下命令即可:

docker pull mysql:5.7

然而第一次拉取到镜像快结束时,却报了如下图所示的错:
在这里插入图片描述
从图中信息可以是空时间不足所致,因为这个问题困扰了我很久,后面查明是部署在docker中的其它应用日志满了所致,重新清理日志,再采用上述拉取命令,即能成功拉取到mysql镜像。

检查镜像是否拉取成功,执行如下命令以查看 :
docker images
在这里插入图片描述

通过镜像启动mysql

确定镜像存在后,通过镜像启动mysql,输入如下命令即可。

docker run -p 3306:3306 --name mymysql -v /soft/mysql/conf:/etc/mysql/conf.d -v /soft/mysql/logs:/logs -v /soft/mysql/data:/var/lib/mysql -e mysql_root_password=123456 -d docker.io/mysql:5.7

-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
-v /soft/mysql/conf:把mysql配置信息指定的路径, docker把mysql镜像生成容器时mysql配置文件。
-v /soft/mysql/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。
-v /soft/mysql/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
-d docker.io/mysql:5.7 -d设置镜像 docker.io/mysql为镜像名 5.7为版本

这段命令的获取不容易,主要在-v和-d参数上 犯了不少错误, 设-v参数的目是想指定容器运行中的某些文件挂载自己指定的文件路径下,冒号前是宿主机指定的路径,冒号后是镜像生成容器docker所指定的路径文件,当时搞返了,造成指定路径下无法生成想要的文件,而-d 主要是看到本地拉取的镜像名带docker.io想省去前缀或端口号,结果是从docker hub仓库拉的其他镜像启动mysql,并不是自己指定mysql.5,7版本了,所以在此需要注意千万不省。最后重新删除镜像,重新输入上述完整的命令才致以成功的启动拉取到的mysql5.7镜像。在此提一下删除镜像和容器等常用的docker的常用命令:

1. docker search mysql 这条命令表示查询mysql的所有镜像信息
2. docker pull mysql 表示从官方下载默认版本的mysql,latest
docker pull mysql:5.7 表示下载mysql版本5.7的
3. docker images 查看当前本地的所有镜像
4. docker rmi image-id 删除制定镜像,image-id是每个镜像独有的id
5. docker rum … 根据镜像启动容器
6. docker ps 查看运行中的容器
7. docker ps -a 查看所有容器
8. docker start 容器id 启动容器
9. docker stop 容器id 停止容器
10. docker rm 容器id 删除容器

mysql创建数据库

工作中一直采用的是oracle,第一次创建mysql数据库并用navicat工具连接,对于新手的我操作中也遇到了不少坑,在此明述与分享:

进入mysql数据库

通过docker的如下命令可以进入启动的mysql容器:

docker exec -it 容器id bash
在这里插入图片描述
紧接着进入mysql,输入mysql的命令即可
mysql> mysql -uroot -p -h localhost
在这里插入图片描述
看到mysql> 说明已经连接到mysql了,通过输入如下命令查看mysql中有哪些数据库
在这里插入图片描述
执行创建数据库操作:
create database 数据库名 default charset=utf8;
grant all privileges on . to ‘数据库名’@’%’ identified by ‘密码’;
set password for ‘数据库名’@‘localhost’ = PASSWORD(‘密码’);
切记每行末尾的分号不能少,否则执行不成功。第二行‘%’的用处非常大,通过如navicat连接工具时才不至于报如下错误:
在这里插入图片描述

这一次的部署让我深有体会,犯了不少错,最后还是解决,得到了提练和学习,并将写下这份心得,也希望能帮到那此如我这般第一次用docker搭mysql数据库爱好者。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值