GitHub+Docker Hub自动构建镜像

一、什么是Dockerfile?

Dockerfile是一个包含用于构建镜像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成镜像。它们简化了从头到尾的流程并极大的简化了部署工作。
Dockerfile 一般分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令,’#’ 为 Dockerfile 中的注释。
Docker以从上到下的顺序运行Dockerfile的指令。为了指定基本映像,第一条指令必须是FROM。一个声明以#字符开头则被视为注释。可以在Docker文件中使用RUN,CMD,FROM,EXPOSE,ENV等指令。
Dockerfile相关语法详见传送门

二、手动构建镜像

以Github仓库go-web-form为例,在项目根目录下创建Dockerfile,内容如下:

FROM golang:1.9
MAINTAINER liuyh73  "15989067460@163.com"
# 该指令用于配置工作目录,其参数应该使用绝对目录。
WORKDIR $GOPATH/src/github.com/liuyh73/go-web-form
# ADD不但支持将本地文件复制到容器中,还支持本地提取文件和远程url下载
# ADD <src> <dst>
ADD . $GOPATH/src/github.com/liuyh73/go-web-form
RUN go get github.com/gorilla/mux
RUN go get github.com/codegangsta/negroni
RUN go get github.com/unrolled/render
RUN go get github.com/spf13/pflag
RUN go build .
# 该指令指示容器讲监听链接的端口,类似于,将容器中的某一个端口暴露出去,从而在外部访问绑定该端口。
EXPOSE 8080
# ENTRYPOINT允许你配置作为可执行文件运行的容器
ENTRYPOINT ["./go-web-form"]

然后使用docker命令构建镜像:

$ sudo docker build .

如果尚未安装docker,请点击这里

三、自动构建镜像

I、连接设置

用户Github和Docker Hub账号,登录Docker Hub:
选择Profile > Settings > Linked Accounts & Services
按照提示关联GitHub账户:
在这里插入图片描述
在这里插入图片描述
然后选择Github创建连接即可:
在这里插入图片描述

II、创建自动连接

自动构建仓库依靠与代码仓库的集成来构建。也可以使用 docker push 命令将已构建的镜像推送到仓库。

  • 1.选择Created> Create Automated Build
    选择Github
    在这里插入图片描述
  • 2.选择仓库(在此选择go-web-form)
    在这里插入图片描述
  • 3.创建镜像仓库
    在这里插入图片描述
  • 4.Github该项目仓库中出现Docker集成
    在这里插入图片描述
  • 5.触发构建镜像(点击Trigger)
    在这里插入图片描述
    在这里插入图片描述
  • 6.构建成功
    在这里插入图片描述

III、构建过程及状态

Docker通过读取Dockerfile中的指令自动生成映像。
通过查看 Build Details 页面,可以查看特定仓库的构建状态。如果有正在排队或正在进行的构建,则可以单击 Cancel 来取消构建。状态有:
Queued:排队等待构建镜像。队列时间取决于你可以使用的并发构建数量。
Building:正在构建镜像。
Success:镜像构建成功,没有问题。
Error: 镜像出了问题。点击对应行进入 Builds Details 页面。页面顶部的 banner 显示日志文件的最后一句话,指明错误是什么。如果需要更多信息,滚动至屏幕底部的日志部分。
【参考链接】
GitHub+Docker Hub实现自动构建镜像

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker 镜像是容器化的基础,它们是由文件层组成的,并且包含了运行一个特定应用所需的软件和配置。Docker Hub 是一个流行的官方和社区共享的 Docker 镜像仓库,其中存储了大量的预构建镜像,这些镜像Docker Inc. 或者开源贡献者维护,可以用于快速启动基于各种软件的基础环境。 除了 Docker Hub,还有其他一些地方可以找到 Docker 镜像: 1. **私有仓库**:企业和组织可能会使用自己的私有Docker Registry,如 Docker Trusted Registry (DTR) 或 Docker Cloud,来存储内部使用的镜像,以保护敏感信息。 2. **GitHub**: 许多开发者会在 GitHub 上托管 Dockerfile,允许用户通过 `git clone` 和 `docker build` 来构建自己的镜像。 3. **Quay.io**: Quay.io 也是一个公共镜像仓库,类似于 Docker Hub,但更加侧重于开发者和企业的使用。 4. **GitLab Container Registry**: GitLab 提供的镜像存储服务,常用于那些已经使用 GitLab 作为代码管理平台的团队。 5. **Google Cloud Marketplace**: Google 提供的云市场中也有许多官方和第三方的 Docker 镜像。 6. **AWS Elastic Container Registry (ECR)**: Amazon Web Services 的官方镜像仓库,适用于 AWS 用户。 7. **Azure Container Registry (ACR)**: Microsoft Azure 的镜像存储服务。 每个镜像都是从一个基础镜像(比如 Ubuntu, Alpine, 或者 CentOS)开始,然后通过 Dockerfile 增加或修改软件和服务,形成特定功能的镜像。所以,虽然 Docker Hub 是最常见的来源,但镜像的多样性意味着它们可以在多个平台上获取。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值