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容器调用yum报错的解决办法

    docker容器调用yum报错的解决办法

    在本篇文章里小编给大家分享的是关于docker容器调用yum报错的解决办法,有兴趣的朋友们可以参考下。
    2020-03-03
  • 在Mac OS X安装Docker教程

    在Mac OS X安装Docker教程

    本篇文章主要介绍了在OS X安装Docker教程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • 用Docker快速构建LEMP环境的方法示例

    用Docker快速构建LEMP环境的方法示例

    这篇文章主要介绍了用Docker快速构建LEMP环境的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • Docker部署Apollo的实现步骤

    Docker部署Apollo的实现步骤

    众所周知分布式配置中心在目前也可以说是企业中项目的标配了,本文主要介绍了Docker 部署Apollo的实现步骤,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • Docker如何修改正在运行的容器的时区和时间

    Docker如何修改正在运行的容器的时区和时间

    在Docker容器中修改时区和时间的步骤:1. 进入容器,使用dockerexec命令以root用户身份进入,2. 安装时区文件,根据基础镜像选择合适的包管理器(如apt-get或apk),3. 设置时区,通过创建软链接或设置环境变量TZ,并更新系统时区
    2025-01-01
  • Docker容器如何开启特权模式

    Docker容器如何开启特权模式

    文章主要解决Docker容器中无法使用systemctl命令的问题,其原因在于大部分的系统镜像移除了init软件包,导致镜像中没有/sbin/init文件,解决方法是通过编写Dockerfile文件修改镜像,构建新的镜像,并运行新构建的镜像,需要注意的是,开启特权模式虽然方便,但可能存在安全风险
    2024-10-10
  • Docker环境下的Apache NiFi安装实践及遇到问题解决方案

    Docker环境下的Apache NiFi安装实践及遇到问题解决方案

    由于最近用到数据同步,故打算采用中间件工具来做数据同步,谁知第一步部署Apache NiFi环境就耽搁了好久,其中遇到一些问题,故记录下来部署成功记录,下面给大家详细介绍Docker环境下的Apache NiFi安装实践及遇到问题解决方案,感兴趣的朋友一起看看吧
    2025-05-05
  • docker如何为容器指定虚拟网卡或IP

    docker如何为容器指定虚拟网卡或IP

    在Docker中,可以通过自定义网络和--network标志将容器绑定到特定的虚拟网卡或网络接口,此外,还可以使用host和macvlan等其他网络驱动,在使用这些模式时,需要注意一些注意事项
    2025-01-01
  • Docker部署SpringBoot项目,本地运行正常,部署至服务器报错zip file closed问题

    Docker部署SpringBoot项目,本地运行正常,部署至服务器报错zip file close

    这篇文章主要介绍了Docker部署SpringBoot项目,本地运行正常,部署至服务器报错zip file closed问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Docker安装mysql教程以及解决mysqld: Can‘t read dir of ‘/etc/mysql/conf.d/‘问题

    Docker安装mysql教程以及解决mysqld: Can‘t read dir&nbs

    本文详细介绍了如何通过Docker来安装和配置MySQL数据库,包括拉取MySQL镜像、启动MySQL容器、配置MySQL、解决常见错误等步骤,提供了详尽的命令和参数说明,帮助用户顺利完成MySQL的安装和配置,文中还提到了如何处理MySQL容器启动时遇到的“无法读取目录”
    2024-10-10

最新评论