阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用镜像仓库托管自己构建的Docker镜像

538次阅读
没有评论

共计 3170 个字符,预计需要花费 8 分钟才能阅读完成。

自己构建的 Docker 镜像,默认存储在本机中,Docker 有提供某些方式分享这些镜像,但不是主流的镜像分享方式,也有违于开源社区的共享精神。

本文介绍如何使用 GitHub 托管 Dockerfile;使用 DockerHub 关联 GitHub 托管的 Dockerfile,进行自动化构建,并托管构建后的镜像。

GitHub 地址:https://github.com。
DockerHub 地址:https://hub.docker.com。

Dockerfile 及镜像构建的相关知识可参考我之前写的几篇博文:

  1. Docker 镜像构建的两种方式。
  2. 官方 Tomcat 镜像 Dockerfile 分析及镜像使用。
  3. 构建自己的 Tomcat 镜像。

准备工作

注册 GitHub 和 DockerHub。GitHub 主要是用于托管源代码(即托管 Dockerfile 文件);DockerHub 主要用于构建和托管镜像。

两个平台都是免费的,但是因为服务器在国外,访问不是很稳定,原因大家都懂。

使用 GitHub 托管 Dockerfile

参考本人的一个 Tomcat Dockerfile 仓库:https://github.com/dfengwei/docker-tomcat

主要步骤:

  1. 新建一个仓库(New repository),例如命名为:docker-tomcat。
  2. 通过 git 提交(或直接通过界面编辑)源码,目录结构可以参考我的仓库,也可参考一些官方仓库。
  3. 编写 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 DescriptionFull DescriptionShort Description 是个简介,Full Description 是详细介绍,建议复制 GitHub 中的 README.md 内容。
  4. 通过 Repo Info 选项卡中的 Docker Pull Command 中显示的命令即可获取本镜像(该命令没指明版本号,请按需添加)。

DockerHub 构建配置

主要配置界面

使用镜像仓库托管自己构建的 Docker 镜像

配置自动构建

勾选 When active, builds will happen automatically on pushes. 复选框。当 GitHub 中对应的文件变动后,会自动推送给 DockerHub,DockerHub 会自动重新构建镜像。

添加 Trigger

先解释下各列的含义(可以点击界面上的 Show more 按钮查看英文版的简单说明):

字段 说明
Type 指 GitHub 中的 Dockerfile 的版本,可以是 Branch 或 Tag。Branch 和 Tag 是 git 中的概念,不明白的请自行百度。
Name 如果 Type 选的是 Branch,请固定使用 master 作为值;如果 Type 选的是 Tag,请使用一个正则表达式做为值,用于匹配 tag。
Dockerfile Location Dockerfile 路径,这个估计大家都理解。/ 对应的是 GitHub 中仓库的根路径。例如我的 Tomcat8.5 Dockerfile 路径为:/8.5/jre8/Dockerfile
Docker Tag Name 镜像版本标签。标签的命名虽然没有标准,但也请遵循一定的规律。最好是先参考官方的一些镜像标签。

DockerHub 提供的这种配置和构建方式十分灵活,多个标签其实可以使用同一个 Dockerfile 文件。构建历史可以通过 Build Details 选项卡查看。

该功能的主要作用是监控其他镜像仓库的变动,触发本仓库的自动构建。建议添加父镜像所在的仓库。此后,父镜像所在的仓库的变动都将触发本仓库的自动构建。例如父镜像紧急修复了一个 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 外,也有很多选择余地,这里不再展开。

更多 Docker 相关教程见以下内容

Docker 安装应用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm

Ubuntu 16.04 服务器上配置使用 Docker  http://www.linuxidc.com/Linux/2017-06/145176.htm

Ubuntu 15.04 下安装 Docker  http://www.linuxidc.com/Linux/2015-07/120444.htm

Docker 安装实例 http://www.linuxidc.com/Linux/2017-04/142666.htm

Docker 创建基础镜像  http://www.linuxidc.com/Linux/2017-05/144112.htm

在 Ubuntu 15.04 上如何安装 Docker 及基本用法 http://www.linuxidc.com/Linux/2015-09/122885.htm

Ubuntu 16.04 上 Docker 使用手记 http://www.linuxidc.com/Linux/2016-12/138490.htm

使用 Docker 分分钟启动常用应用  http://www.linuxidc.com/Linux/2017-04/142649.htm

Ubuntu 16.04 下 Docker 修改配置文件不生效解决办法  http://www.linuxidc.com/Linux/2017-05/143862.htm 

Docker 的详细介绍:请点这里
Docker 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-07/145908.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3170字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7964297
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
免费领取huggingface的2核16G云服务器,超简单教程

免费领取huggingface的2核16G云服务器,超简单教程

免费领取 huggingface 的 2 核 16G 云服务器,超简单教程 前言 HuggingFace.co...
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件 大家好,我是星哥,很多人都希望能高效地保存微信公众号的文章,用于...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...
星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

  星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...