Docker镜像构建-Aliyun详解

 更新时间:2025年07月17日 15:55:07   作者:小凯  ོ  
这篇文章主要介绍了Docker镜像构建-Aliyun的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

对于搞编程开发的伙伴来说,我一直都推荐使用 Mac 电脑,因为 Windows 电脑除了相对省点钱,其他的什么也不省!为啥?那我 Windows 电脑推沟里?

其实到也不是 Windows 不好,只是在编程开发中的环境配置,要有太多的额外的兼容问题。因为 Windows 是一个系统,这个系统被各个厂商使用,安装到自己家的电脑上。因此一个软件安装后,不同的机器,都可能在一些细节功能上,有自己的差异化处理方案。就像 Docker 安装,Mac 电脑直接安装即可,Windows 不是安装虚拟机,就是搞个 wsl2,不少小白基本就在这崩溃了。

相对说,Mac 电脑就好的多,因为人家的系统只给自己家的电脑使用。所以各类软件的安装和使用也不会有那么多的适配问题了。另外 Mac 电脑也等同于是在 Linux 上做开发,你的所有编程中使用的命令,几乎就是无差别的可以在云环境 Linux 执行。因此,Mac 电脑除了不省钱,其他的都省;省时、省心、省力。

不过,Windows 电脑也不能推沟里呀!所以,我们要想点办法,让一些如 Docker 的环境安装和镜像构建,让外部系统解决。不就可以了噻!

一、DevOps 流水线

DevOps 流水线,是一种可持续集成交付的手段。用户可以使用流水线自定义编排项目发布过程中所涉及的代码打包、单元测试、自动部署等各项阶段。 通过一系列自动化任务的组合解决日常开发工作中繁琐而重复的任务。

官网(JD):https://docs.jdcloud.com/cn/devops/application-scenarios(opensnew window)

市面上也有很多的免费的可持续交付工具,方便我们自己部署项目使用。如 Github Actions (opens new window)、buddy.works (opens new window)、Jenkins (opens new window),这些已经在 bugstack.cn (opens new window)编程路书(发布部署)中分享。今天再分享一个阿里云的 DevOps 流水线操作,实际使用体验效果还不错。

二、云效工作台介绍

本次案例会涉及到使用阿里云效平台的 代码管理、流水线配置、容器镜像

1. 代码&流水线

  • 地址:https://devops.aliyun.com/workbench(opens new window)
  • 说明:用于管理工程代码和配置流水线。你可以提交本地代码,也可以把其他- 仓库的代码导入到代码管理中,如;Github、Gitee、Gitlab,其他的也可以通过 url 导入。

2. 容器镜像服务 

2.1 容器申请

地址:https://cr.console.aliyun.com/cn-hangzhou/instance/dashboard(opensnew window)

  • 说明:容器镜像,相当于代理的 Docker Hub (opens new window)可以把我们通过流水线构建的项目(SpringBoot/React/…)构建的镜像,放到容器镜像服务中。之后就可以在其他云环境或者本地环境拉取使用了。

2.2 新建服务

  • 这里要新建一个镜像名称,xfg-dev-tech-aliyun-workbench 的镜像。这个镜像为后续的流水线构建使用。
  • 创建的时候,要选择对应的仓库。可以是 Codeup 的阿里云代码库,也可以是 Github 关联地址的仓库。
  • 再往下开始平台,你需要注册一个云校平台和容器镜像服务。

三、上传代码库

1. 案例工程

# 基础镜像 openjdk:8-jre-slim 代理地址;registry.cn-hangzhou.aliyuncs.com/xfg-studio/openjdk:8-jre-slim
FROM registry.cn-hangzhou.aliyuncs.com/xfg-studio/openjdk:8-jre-slim

# 作者
MAINTAINER xiaofuge

# 配置
ENV PARAMS=""

# 时区
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 在容器内创建目录/home/project 用于存放应用程序和相关文件
RUN mkdir -p /home/project

# 设置工作目录为/home/project,即后续的命令都在这个工作目录下执行。
WORKDIR /home/project

# 添加应用
ADD xfg-dev-tech-app/target/xfg-dev-tech-app.jar /home/project/xfg-dev-tech-app.jar

## 在镜像运行为容器后执行的命令
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /home/project/xfg-dev-tech-app.jar $PARAMS"]
  • 脚本:注意配置的脚本信息,如果你是新的其他的工程,可以参考配置。

2. 上传项目

把案例代码上传到阿里云代码库的方式有很多,可以从 Github 导入,也可以先把代码拉取到本地,在从本地上传到阿里云代码库。但两个方式都建议把代码拉取到本地代码一份,方便进行修改。

2.1 导入代码

  • 首先,进入案例工程地址(Github),点击 Fork 克隆到自己的仓库中。
  • 之后,在阿里云效点击导入仓库,这里可以选择从 Github 导入。导入的时候,需要填写 Access Token。创建地址:https://github.com/settings/tokens(opens new window)
  • 最后,在确认后会展示你的 Github 仓库列表,选择要导入的工程即可。

2.2 上传代码

  • 首先,开始操作之前,你要把提供的案例代码拉取到本地。
  • 之后,在云效代码库,新建一个代码库。新建后可以获得一个 https 提交代码库的地址。另外,要注意你还要在云效仓库个人设置里,创建一个,个人访问令牌(地址:https://account-devops.aliyun.com/settings/profile (opens new window))。
  • 最后,在自己 Intellij IDEA 菜单栏上,点击 Git 选择 Manage Remotes 添加阿里云效仓库地址,之后就可以把代码提交到阿里云效了。

3. 添加流水线 

3.1 构建操作

  • 如图,配置构建信息。注意,☑️ 制品中包含打包路径的目录。

3.2 添加步骤;Docker镜像构建

  • 添加新的步骤,选择构建并推送至ACR(个人版)注意配置路径正确。

3.3 添加步骤;邮件通知

  • 添加一个邮件通知的插件,构建后会接收到邮件。

4. 构建镜像 

4.1 执行构建

  • 点击运行,之后就可以构建镜像了。如果哪个节点失败了,可以点日志查看失败原因。

4.2 构建结果 

4.2.1 邮件通知

  • 你会收到一个来自云效构建的通知邮件。代表着构建的结果。

4.2.2 查看镜像

  • 构建完成镜像后,可以进入容器镜像服务中找到镜像。地址:https://cr.console.aliyun.com/cn-hangzhou/instance/repositories(opens new window)
  • 之后还可以通过公网地址拉取镜像,命令:docker pull registry.cn-hangzhou.aliyuncs.com/fuzhengwei/xfg-dev-tech-aliyun-workbench:1.0.0

4.2.3 拉取镜像

[root@hcss-ecs-decd ~]# docker pull registry.cn-hangzhou.aliyuncs.com/fuzhengwei/xfg-dev-tech-aliyun-workbench:1.0.0
1.0.0: Pulling from fuzhengwei/xfg-dev-tech-aliyun-workbench
1efc276f4ff9: Already exists 
a2f2f93da482: Already exists 
1a2de4cc9431: Already exists 
d2421c7a4bbf: Already exists 
64e0330ea35f: Pull complete 
4da07e374896: Pull complete 
4f4fb700ef54: Pull complete 
eb9d0e194679: Pull complete 
Digest: sha256:a7af08fff4ea0b76184a2fad7e7ca639ab4a9ad16573480b526eda672ed8a483
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/fuzhengwei/xfg-dev-tech-aliyun-workbench:1.0.0
registry.cn-hangzhou.aliyuncs.com/fuzhengwei/xfg-dev-tech-aliyun-workbench:1.0.0
[root@hcss-ecs-decd ~]# docker tag registry.cn-hangzhou.aliyuncs.com/fuzhengwei/xfg-dev-tech-aliyun-workbench:1.0.0 fuzhengwei/xfg-dev-tech-aliyun-workbench:1.0.0
[root@hcss-ecs-decd ~]# docker images
REPOSITORY                                                                   TAG       IMAGE ID       CREATED          SIZE
fuzhengwei/xfg-dev-tech-aliyun-workbench                                     1.0.0     df740ba425bb   24 minutes ago   221MB
  • 镜像构建完成后,就可以在云服务器上拉取镜像了。
  • 好啦,到这你就可以愉快的完善了,前端构建镜像也是一样的操作。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Docker图形工具Portainer的具体使用

    Docker图形工具Portainer的具体使用

    本文主要介绍了Docker图形工具Portainer的具体使用,Portainer是一个开源的轻量级管理UI,提供了一个直观的图形用户界面,使得管理Docker容器变得更加容易,感兴趣的可以了解一下
    2024-11-11
  • Docker运行Web服务实战之Tomcat的详细过程

    Docker运行Web服务实战之Tomcat的详细过程

    Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和Java Server Page(JSP)的支持,这篇文章主要介绍了Docker运行Web服务实战之Tomcat的详细过程,需要的朋友可以参考下
    2022-08-08
  • 详解六种减小Docker镜像大小的方法

    详解六种减小Docker镜像大小的方法

    这篇文章主要介绍了详解六种减小Docker镜像大小的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 导出与导入Docker的容器实现示例

    导出与导入Docker的容器实现示例

    本文主要介绍了导出与导入Docker的容器实现示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • 重启docker服务应用自启停命令(推荐)

    重启docker服务应用自启停命令(推荐)

    这篇文章主要介绍了重启docker服务应用自启停命令,文中给大家提到了服务器重启后启动Docker命令,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • 编写Dockerfile和构建自定义镜像的步骤与技巧

    编写Dockerfile和构建自定义镜像的步骤与技巧

    Docker已经成为现代应用程序开发和部署的重要工具之一,在Docker中,Dockerfile是定义和构建自定义镜像的键文件,本文将深入解读Dockerfile的编写和自定义镜像的构建过程,并分享一些实用的技巧和最佳实践,需要的朋友可以参考下
    2023-07-07
  • Docker部署Redis缓存服务的实现步骤

    Docker部署Redis缓存服务的实现步骤

    本文介绍了使用Docker部署Redis缓存服务的步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-07-07
  • docker安装redis并挂载到本地的详细教程

    docker安装redis并挂载到本地的详细教程

    这篇文章主要介绍了docker安装redis并挂载到本地,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • Docker容器内目录显示异常的解决方法

    Docker容器内目录显示异常的解决方法

    在容器化技术日益普及的当下,Docker等容器平台已成为众多开发者与运维人员的得力助手,然而在使用容器的过程中,偶尔会遇到一些令人头疼的问题,比如进入容器后不显示目录,这无疑会给容器的管理和操作带来诸多不便,所以本文给大家介绍了Docker容器内目录显示异常的解决方法
    2025-01-01
  • Docker中安装Redis并开启远程访问的详细步骤

    Docker中安装Redis并开启远程访问的详细步骤

    这篇文章主要介绍了Docker中安装Redis并开启远程访问的详细步骤,文中有详细的代码示例供大家参考,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2025-01-01

最新评论