Docker——常用镜像的安装 & 本地镜像推送发布到阿里云
Posted 张起灵-小哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker——常用镜像的安装 & 本地镜像推送发布到阿里云相关的知识,希望对你有一定的参考价值。
1.Docker常用镜像的安装
不知不觉Docker入门篇的学习已经有一个星期了,这是最后一篇关于Docker入门级别的文章,就来说说Docker中常用镜像的安装步骤;以及将本地镜像推送发布到阿里云平台。
首先Docker常用镜像的安装主要是这几步:
- 从Docker Hub中搜索镜像:docker search
- 拉取镜像到本机仓库:docker pull
- 查看是否拉取成功:docker images
- 以该镜像为模板生产容器实例运行:docker run
- 停止容器实例的运行:docker stop、docker kill、exit
- 移除容器:docker rmi
因为Docker最终肯定是要与Java对接的,所以这里演示常用镜像的安装包括:tomcat、mysql、redis。tomcat前面几篇文章已经说过了,可以参考。
这里就来说一下Docker在本机上安装mysql、redis。
首先我从Docker Hub上拉取了一个mysql5.7的镜像,docker images可以看到已经拉取成功。
下面直接docker run,以mysql5.7镜像为模板,创建mysql容器实例运行。
这里最后的参数 -d是后台启动mysql,-p映射的宿主机连接mysql的端口号为12345,--name对容器实例重命名,-v添加数据卷实现宿主机与docker容器实例的数据共享 + 持久化,-e指定一下连接权限密码,最后跟上我们要以哪个镜像为模板。
上面的截图中,docker ps看出mysql容器实例已经运行起来了。
下面docker exec再次进入mysql容器的终端命令行,就可以进行相关的sql语句操作了。
上面几张截图都是在docker的mysql容器实例中,使用简单的sql语句建库、建表、新增、查询。
下面回到宿主机windows10,在Navicat中新建连接,连接到docker中的这个mysql容器,主机地址为虚拟机ip,端口号为 -p 对应的12345。连接成功后,可以看到刚刚已经创建好的database、table,以及table中的数据。
上面的截图:然后我在宿主机上,向这张表中新增一条记录。
下面的截图:回到docker中的mysql容器,再次select,可以看到数据实现了同步。
上面的案例说完了docker中mysql镜像的安装与操作。
下面来说redis镜像的安装与操作。
首先还是从Docker Hub上拉取redis,我这里选择了6.2.5这个版本。
这里的 -d 以守护式容器运行(即后台启动),-p映射端口号为6379,-v添加数据卷实现宿主机与docker容器的数据共享 + 持久化,redis-server启动redis服务端,--appendonly yes表示开启redis中的AOF持久化模式。
这里还需要redis.conf的配置文件,可以拷贝之前学习redis中的那些文件。
因为上面的步骤是后台启动,这里需要docker exec再次进入redis容器,redis-cli表示redis客户端。
经过上面的keys、set等命令,说明redis容器已经成功启动,之后shutdown退出redis,回到之前宿主机中实现数据共享 + 持久化的那个数据卷目录下,即可看到已经生成了appendonly.aof的持久化文件。
2.本地镜像推送发布到阿里云
这里以centos这个镜像为例。
首先我将本机仓库中的这个mycentos:1.0镜像启动,创建出一个对应的容器实例运行。
然后docker commit以mycentos:1.0镜像生产出的该容器为模板,提交一个新的容器副本,使之成为一个新的镜像。镜像名称为 mycentos:1.1。
下面我们转到阿里云的官网,搜索容器镜像服务,在镜像仓库中点击创建镜像仓库。
下面执行命令,就可以将本地镜像推送并发布到阿里云了。
$ docker login --username=szh1310179**** registry.cn-hangzhou.aliyuncs.com
$ docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/szhbuy/mycentos:[镜像版本号]
$ docker push registry.cn-hangzhou.aliyuncs.com/szhbuy/mycentos:[镜像版本号]
以上三个命令执行完毕,回到阿里云,刷新页面即可看到刚刚推送过来的仓库了。
上面最后一个命令是docker push,将本地镜像推送到阿里云。那么能去自然能回,也就是说肯定还可以docker pull将该镜像从阿里云拉取到本地仓库。
即执行下面的docker pull命令。
docker images可以查看拉取是否成功,成功之后,最后我们 docker run -it 以交互式容器的方式以此镜像为模板生产容器实例运行,并且进入到它的命令行终端,可以看到pwd、ls等命令正确无误。
此时,向阿里云推送发布、从阿里云拉取运行就已经全部完成了!!!
以上是关于Docker——常用镜像的安装 & 本地镜像推送发布到阿里云的主要内容,如果未能解决你的问题,请参考以下文章