使用镜像仓库托管自己构建的Docker镜像
自己构建的Docker镜像,默认存储在本机中,Docker有提供某些方式分享这些镜像,但不是主流的镜像分享方式,也有违于开源社区的共享精神。
本文介绍如何使用GitHub托管Dockerfile;使用DockerHub关联GitHub托管的Dockerfile,进行自动化构建,并托管构建后的镜像。
GitHub地址:https://github.com。
DockerHub地址:https://hub.docker.com。
准备工作
注册GitHub和DockerHub。GitHub主要是用于托管源代码(即托管Dockerfile文件);DockerHub主要用于构建和托管镜像。
两个平台都是免费的,但是因为服务器在国外,访问不是很稳定,原因大家都懂。
使用GitHub托管Dockerfile
参考本人的一个Tomcat Dockerfile仓库:https://github.com/dfengwei/docker-tomcat
主要步骤:
新建一个仓库(New repository),例如命名为:docker-tomcat。
通过git提交(或直接通过界面编辑)源码,目录结构可以参考我的仓库,也可参考一些官方仓库。
编写 README.md 文件(强烈建议)。
GitHub是个很常用的平台,具体操作这里就不细讲了,网上资料也很多。
使用DockerHub构建并托管镜像
参考本人的一个Tomcat镜像仓库:https://hub.docker.com/r/dfengwei/docker-tomcat
主要步骤
1.新建一个自动构建(Create Automated Build),关联并验证GitHub账户。再选择GitHub账户中的一个仓库,也就是刚才创建的docker-tomcat仓库。
2.打开 Build Settings 选项卡,进行构建细节的配置。构建配置因为比较复杂和重要,我们下面再细讲,这里不展开。配置好后DockerHub会自动根据配置构建镜像并托管。当然你也可以手动触发构建。
3.打开 Repo Info 选项卡,编写 Short Description 和 Full Description 。Short Description 是个简介,Full Description 是详细介绍,建议复制GitHub中的README.md内容。
4.通过 Repo Info 选项卡中的Docker Pull Command中显示的命令即可获取本镜像(该命令没指明版本号,请按需添加)。
DockerHub构建配置
主要配置界面
配置自动构建
勾选 When active, builds will happen automatically on pushes. 复选框。当GitHub中对应的文件变动后,会自动推送给DockerHub,DockerHub会自动重新构建镜像。
添加Trigger
先解释下各列的含义(可以点击界面上的 Show more 按钮查看英文版的简单说明):
DockerHub提供的这种配置和构建方式十分灵活,多个标签其实可以使用同一个Dockerfile文件。构建历史可以通过 Build Details 选项卡查看。
添加Repository Links
该功能的主要作用是监控其他镜像仓库的变动,触发本仓库的自动构建。建议添加父镜像所在的仓库。此后,父镜像所在的仓库的变动都将触发本仓库的自动构建。例如父镜像紧急修复了一个BUG并重新构建了镜像,那么我们的镜像也会跟着重新构建。当然,如果我们镜像已经被某个用户在使用了,那么除非该用户update这个镜像,否则该镜像不会自动更新至最新版本。
Build Triggers
DockerHub提供Http接口供有需要的用户触发构建。例如你有个自动化脚本想要触发仓库的自动化构建,就可以通过本功能实现。
使用其他仓库托管镜像
除了DockerHub外,还有很多平台提供镜像托管服务,比如我使用的阿里云容器Hub:https://dev.aliyun.com。
参考本人在阿里云开发者平台上托管的一个Tomcat镜像仓库:https://dev.aliyun.com/detail.html?spm=5176.1972343.2.2.599c57159oCWBq&repoId=50185。
获取这个平台的镜像时,必须带上平台域名,例如:
$ docker pull registry.cn-hangzhou.aliyuncs.com/dfengwei/docker-tomcat
第三方平台的镜像仓库的配置方式大多都和DockerHub类似,源码托管(Dockerfile托管)的方式也有多种。为了不重复劳动,我在阿里云容器Hub上关联的是上面配置的GitHub仓库。也就是说,我用同一份Dockerfile会生成两份镜像,一份在DockerHub上,一份在阿里云容器Hub上,两份镜像的内容其实是一样的,不过pull的方式略有不同。
当然,Dockerfile源码托管的方式除了GitHub外,也有很多选择余地,这里不再展开。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
MySQL binlog 详解
MySQL5.7 默认是不开启 binlog 日志的,具体的开启方式在开启的笔记中查看。 binlog 开启成功之后,binlog 文件的位置可以在 my.inf 配置文件中查看。也可以在 mysql 的命令行中查看。命令行查看代码如下: showvariableslike'%log_bin%'; 我们也可以看一下当前 mysql 的 binlog 的情况 showmasterstatus 视频链接:http://www.roncoo.com/course/view/658088f6e77541f5835b61800314083e 每当我们重启一次,会自动生成一个 binlog 文件,我们重启完毕之后再来执行同样的命令 存放 binlog 的目录下也多个了这么一个文件。 当然,我们也可以手动的来刷新 binlog 文件,通过 flush logs,同样会新创建一个 binlog 文件 如果我们想把这些文件全部清空,可以使用 reset master 来处理 下面我来看针对单个文件的操作,首先我们想看一下文件的内容找到 binlog 的目录,比如我们要看 mysql-bin-0001vi...
- 下一篇
在Spring Boot中集成Mybatis
在Spring Boot中集成Mybatis 在POM中添加Mybatis的相关起步依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> 配置数据库连接,我们在application.yml文件中配置一下内容 spring: datasource: driver-class-name:com.mysql.jdbc.Driver url:jdbc:mysql://localhost:3...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8安装Docker,最新的服务器搭配容器使用
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7安装Docker,走上虚拟化容器引擎之路