我们以Docker部署Mysql为例,介绍docker如何获取镜像、创建容器,从而部署mysql并提供客户端访问。
配置:
Windows 10
Docker 18.03.0
- Mysql 5.7
获取Mysql镜像
首先打开“Docker Quickstart Terminal”。在获取Mysql镜像前,我们需要查看我们已有的镜像,即在Terminal里输入:
|
如果没有这个镜像,则在Docker Hub里查找有没有“mysql”这个镜像(当然是有的):
|
如下图,命令行里打印出来了搜索内容,第一行就是我们想要的,从图片中,我们可以看到第一列是“镜像名字”,第二列是对该镜像的描述,第三列是该镜像所获得的星星数,第四列如果有个[OK]字样则代表它是由官方项目组创建和维护的,第五列“automated”表示资源是否允许用户验证镜像的来源和内容:
然后获取mysql镜像,如果不表明获取哪个版本的镜像,则默认是最新版本,建议获取确定的版本,以方便后期别的连接。这里我获取5.7版本的mysql。
|
基于mysql镜像创建并运行容器
|
`docker run *
是创建并运行容器的意思,等同于
docker create *+
docker start * `**--name study_mysql
,即指定容器名为“study_mysql”--privileged=true
,即防止挂载数据卷出现权限问题-p 3306:3306
,即设置映射宿主主机端口,前一个3306是对外端口,后一个3306是对内端口-v
,即挂载宿主目录到容器目录-e
,设置环境变量,此处指定root密码,即MYSQL_ROOT_PASSWORD=123456
-d
,即以守护进程运行(后台运行)最后一个即是镜像名称
这一条运行完后,查看后台运行的镜像:
|
如图:
进入容器设置客户端访问权限
进入容器
|
其中,-it
为-i
和-t
:
docker exec
,即在运行的容器中执行命令-i
选项让容器的标准输入保持打开-t
选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上- 这段命令的含义就是“在容器 study_mysql 中开启一个交互模式的终端”
进入mysql数据库的客户端
|
输入完,上面的代码,回车,再输入密码(不可见),在敲一次回车,如账号密码没有错误的话,就进入了mysql客户端里了。
修改root 可以通过任何客户端连接
|
在mysql里输入命令的时候记得在最后加个分号“;”。
退出mysql
|
这个语句末尾不用分号,也能退出mysql客户端。
宿主机或远程客户端工具访问
|
-h 127.0.0.1
,后面的ip为mysql服务器主机地址,但由于还是本机测试,所以仍是127.0.0.1-P 3306
,说明指定端口3306其他的同上
最后,提示,退出容器,也是用exit
。
参考文章:
如需转载,请注明出处,谢谢~