博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
云计算之dockerhub与github实现跨墙拉取镜像与自动化部署
阅读量:3513 次
发布时间:2019-05-20

本文共 2115 字,大约阅读时间需要 7 分钟。

随着时代的发展,虚拟化技术越来越普及,大到BAT,小到各种小公司,虚拟化的应用大大节省了公司的成本,不需要再买众多的服务器了,也就没有了对硬件维护的成本开销,随着虚拟化技术的完善,docker容器技术也走上了历史舞台,它的快捷方便赢得了各大公司的好评。下面我就简要描述一下dockerhub的应用,它与github实现跨墙拉取镜像,自动化部署镜像容器技术。

1. 首先,你得有个dockerhub账号,百度搜索dockerhub,选择官网,注册dockerhub并登录进dockerhub的官网,接下来要创建仓库,我们可以创建多个公共仓库,一个私有仓库,要再创建私有仓库需要花钱的,点击[create repository]按钮进行创建,自己取仓库名字与描述

2.在linux客户端安装docker,编写demo案例,命令行登录到dockerhub仓库,编译上传即可

vim Dockerfile       FROM busybox       CMD echo "Hello world! This is my first Docker image."]# docker login   username:   password:]# docker build -t daneiyunzhijia/busybox .]# docker run daneiyunzhijia/busybox ]# docker push daneiyunzhijia/busybox

   以上命令可以将本地编译生成的Docker镜像推送到Docker Hub仓库上,别人就可以搜到,在Docker Hub中,您的存储库在Tags下有一个新标签,如果要下载使用这个镜像,则执行下面命令

]#  docker pull daneiyunzhijia/busybox]#  docker run  -it daneiyunzhijia/busybox:latest

3.仓库的管理
    1.创建存储库[一般选择公共仓库]
    2.将Docker容器映像推送到Docker Hub
        

]# docker build -t dockerhub用户名/仓库的名字[:标签]]# docker tag 已经存在的镜像   dockerhub用户名/仓库的名字[:标签]]# docker commit 正在运行的容器  dockerhub用户名/仓库的名字[:标签]]# docker push  dockerhub用户名/仓库的名字[:标签]

4.dockerhub团队和组织
    Docker Hub Organizations允许您创建团队,以便您的团队可以访问共享的镜像存储库。
        组织是可以一起管理的团队和存储库的集合。
        团队是属于您组织的Docker Hub用户组。
    1.创建组织
        Organizations --> create Organization --> 填写自己组织的信息
        你创建了一个组织。你会看到你有一个团队,业主团队只有一个成员(你!)
    2.业主团队
        该业主队是一支特殊的团队,已经完全进入到组织中的所有存储库。
            管理组织设置和结算
            创建团队并修改任何团队的成员资格
            访问和修改属于组织的任何存储库
    3.创建团队
        1.单击创建团队
        2.填写您团队的信息,然后单击“ 创建”
        3.将成员添加到团队中
            组织 > 您的组织 > 您的团队名称 > 添加用户 [提供用户的Docker ID用户名或电子邮件,以将其添加到团队]
        4.给用户授权
5.网络挂接
    您可以使用webhooks在另一个服务中执行操作以响应存储库中的推送事件。Webhooks是发送到您在Docker Hub中定义的URL的POST请求。
6.自动部署
    编写自动部署规则,关联github存储库,每当开发人员git push提交代码时,都会触发自动部署,从而生成新的镜像,此处可以关联github,因为github和dockerhub服务器都在国外,因此可以根据它俩跨墙访问谷歌提供等镜像,例如搭建k8s,很多镜像都在谷歌上,无法下载使用,可以用这种方式解决这个问题。
    configure automated builds [k8s下] --> source repository [github 的账户和对应的存储库] --> autotest[off] --> repository link [off] --> build rules [                                                               

source type source docker tag dockerfile location build context autobuild build caching
branch master 镜像标签

dockerfile的位置

例:nginx/Dockerfile

 /   on  on

    ] --> save and build [ 开始编译镜像,时间比较长,可以查看timeline部分看看进度 ]

7.优势
    自动化部署减轻了压力,不需要一些额外的重复的操作

以上为个人总结,如果使用过程中遇到什么问题,或者有补充分享,欢迎评论。

 

转载地址:http://fvcqj.baihongyu.com/

你可能感兴趣的文章
[LeetCode javaScript] 1. 两数之和
查看>>
[LeetCode javaScript] 14. 最长公共前缀
查看>>
[LeetCode javaScript] 26. 删除排序数组中的重复项
查看>>
[LeetCode javaScript] 8. 字符串转换整数 (atoi)
查看>>
[LeetCode javaScript] 28. 实现strStr()
查看>>
cv2.error: OpenCV(3.4.2) c:\projects\opencv-python\opencv\modules\imgproc\src\color.hpp:25
查看>>
前端网页学习7(css背景属性)
查看>>
前端网页学习8(css三大特性:层叠性,继承性,优先级)
查看>>
前端网页学习9(css盒子)
查看>>
python学习8(列表)
查看>>
JavaScript学习(new1)
查看>>
http GET 和 POST 请求的优缺点、区别以及误区
查看>>
JVM的4种垃圾回收算法、垃圾回收机制
查看>>
什么是分布式事务
查看>>
常用的分布式事务解决方案
查看>>
设计模式:单例模式 (关于饿汉式和懒汉式)
查看>>
一致性Hash算法
查看>>
更新Navicat Premium 后打开数据库出现1146 - Table 'performance_schema.session_variables' doesn't exist
查看>>
安装rabbitmq时踩的坑
查看>>
Eclipse如何设置自动提示?
查看>>