云原生容器Clouder认证:基于容器搭建企业级应用—课时5:制作容器镜像

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 云原生容器Clouder认证:基于容器搭建企业级应用—课时5:制作容器镜像

思考:用容器搭建应用主要有哪些步骤?

初步学习了容器相关知识后,小陈准备开始搭建公司网站。为了少走弯路,还是打算找大刘请教一下。

小陈:师傅,我快速的学习了容器和Docker基础知识,现在就要开始搭建我们公司的网站了。我看了下,用容器来跑公司网站,过程不很复杂,对吧?

大刘:用容器运行应用就是简单、易用。你知道用容器搭建应用主要有哪几步?

小陈:应该是用 docker run 一个镜像吧。

大刘:那么镜像从哪儿来呢?比如,我们的公司网站,原本只是一些代码,还不是镜像文件,怎么把代码、运行环境等打包在一起变成镜像呢?

小陈:还没了解到。请师傅赐教!

大刘:搭建并运行应用,包含三个重要过程,分别是构建、发布和运行:1)构建就是把应用程序和运行环境打包成镜像。2)发布就是把镜像文件发布到镜像仓库,表示可以用来运行了。3)运行,就是获取已发布的镜像,运行成容器。构建、发布和运行,与docker中的build、ship、run其实是一个意思。

小陈:明白了。师傅,我这次搭建,也走构建、发布、运行的搭建过程吧?

大刘:嗯。这就开干吧,遇到什么问题,随时来找我。


采用容器技术搭建并运行企业网站,需要经历三个主要过程:

  • 构建(build):把应用代码和运行环境一起,制作成镜像文件
  • 发布(release):将镜像文件发布到镜像仓库。
  • 运行(run):从镜像仓库中获取镜像并运行。

 

容器镜像如何构建


将WordPress应用制作成容器镜像

Docker镜像制作通常有两种方式:

  1. 基于docker commit 制作镜像。
  2. 基于Dockerfile制作镜像,为主流镜像的制作方式。

小陈对构建应用镜像的两种方式,还没有概念,到底选择哪种呢?

小陈:师傅,构建镜像有 docker commit 和 Dockerfile 两种方式,哪种更好呢?

大刘:问得好。docker commit 是通过命令直接构建镜像,只有构建者才知道构建的过程,构建过程难以重现。用Dockerfile构建镜像,则是把构建过程的每个步骤都写到脚本中,通过 docker build 执行脚本的方式来构建镜像,这样做的好处是,整个过程都是可见的、清晰的。应用的构建属于软件工程的一部分,都要追求过程可控、可查、可重现。这么说,你觉得应该用哪种方式更合适?

小陈:清楚了。构建镜像的工作是团队工作的一部分,理应透明可控,需要用Dockerfile来构建。谢谢师傅!


Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。我们可以理解Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令。Docker程序读取Dockerfile,解决这些命令间的依赖关系,根据指令生成定制的镜像。

相比镜像这种黑盒子,Dockerfile这种显而易见的脚本更容易被开发者接受,它明确的表明镜像是怎么产生的。有了Dockerfile,当我们需要定制自己额外的需求时,只需在Dockerfile上添加或者修改指令,重新生成镜像即可,省去了敲命令的麻烦。

Dockerfile文件的编写需要遵循相应的要求和规范,Docker官方提供了相应的说明和指导,如果您想学习这方面的知识,建议可以参考Docker官方文档:Dockerfile参考

基于Dockfile构建镜像并运行,会经历如下过程:

其中Dockerfile、Image、Container的关系如下:

  • Dockerfile是软件开发的基础
  • Docker镜像(Image)是软件的交付品
  • Docker容器(Container)则可以认为是软件的运行态
  • Dockerfile面向开发,Docker镜像成为交付标准,Docker容器则涉及部署、运行与运维,三者共同构成了 Docker 技术的底座。

 

构建网站应用镜像的步骤

明白以上原理之后,我们知道构建网站应用的WordPress镜像之前,需要先编写好Dockerfile文件。在本次课程中为了验证快速搭建网站,所以使用Docker官方镜像提供的WordPress的Dockerfile文件。

整体步骤如下(具体操作会在实验环节中呈现)

1、创建WordPress镜像制作目录。


# 创建WordPress镜像制作目录makeWordpress并进入该目录
mkdir -p /makeWordpress
cd /makeWordpress


2、下载Dockerfile文件和docker-entrypoint.sh预处理脚本,赋予脚本执行权限。


# 下载Dockerfile文件和配置文件
wget https://raw.githubusercontent.com/docker-library/wordpress/841f2801d0a6d0cf73321a5554d6bade4c143417/php7.3/apache/Dockerfile
wget https://raw.githubusercontent.com/docker-library/wordpress/841f2801d0a6d0cf73321a5554d6bade4c143417/php7.3/apache/docker-entrypoint.sh
# 设置文件权限
chmod 755 docker-entrypoint.sh


3、运行Docker build命令,利用Dockerfile制作WordPress镜像。


# 制作wordpress镜像,并存放到makeWordpress目录
docker build -t="wordpress:v1" /makeWordpress


4、运行Docker images查看制作出的镜像。

# 查看构建完成的镜像
docker images






练习实验:通过ACR快速部署网站应用

https://developer.aliyun.com/adc/scenario/exp/79f68855f1194655bb08e125b59ec104?

 

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。   相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
28天前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
134 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
20天前
|
存储 人工智能 调度
容器服务:智算时代云原生操作系统及月之暗面Kimi、深势科技实践分享
容器技术已经发展成为云计算操作系统的关键组成部分,向下高效调度多样化异构算力,向上提供统一编程接口,支持多样化工作负载。阿里云容器服务在2024年巴黎奥运会中提供了稳定高效的云上支持,实现了子弹时间特效等创新应用。此外,容器技术还带来了弹性、普惠的计算能力升级,如每分钟创建1万Pod和秒级CPU资源热变配,以及针对大数据与AI应用的弹性临时盘和跨可用区云盘等高性能存储解决方案。智能运维方面,推出了即时弹性节点池、智能应用弹性策略和可信赖集群托管运维等功能,进一步简化了集群管理和优化了资源利用率。
|
18天前
|
监控 安全 Cloud Native
阿里云容器服务&云安全中心团队荣获信通院“云原生安全标杆案例”奖
2024年12月24日,阿里云容器服务团队与云安全中心团队获得中国信息通信研究院「云原生安全标杆案例」奖。
|
1月前
|
供应链 安全 Cloud Native
阿里云容器服务助力企业构建云原生软件供应链安全
本文基于2024云栖大会演讲,探讨了软件供应链攻击的快速增长趋势及对企业安全的挑战。文中介绍了如何利用阿里云容器服务ACK、ACR和ASM构建云原生软件供应链安全,涵盖容器镜像的可信生产、管理和分发,以及服务网格ASM实现应用无感的零信任安全,确保企业在软件开发和部署过程中的安全性。
|
1月前
|
人工智能 Kubernetes Cloud Native
阿里云容器服务,智算时代云原生操作系统
2024云栖大会,阿里巴巴研究员易立分享了阿里云容器服务的最新进展。容器技术已成为云原生操作系统的基石,支持多样化的应用场景,如自动驾驶、AI训练等。阿里云容器服务覆盖公共云、边缘云、IDC,提供统一的基础设施,助力客户实现数字化转型和技术创新。今年,阿里云在弹性计算、网络优化、存储解决方案等方面进行了多项重要升级,进一步提升了性能和可靠性。
|
1月前
|
运维 Cloud Native 持续交付
深入理解云原生架构及其在现代企业中的应用
随着数字化转型的浪潮席卷全球,企业正面临着前所未有的挑战与机遇。云计算技术的迅猛发展,特别是云原生架构的兴起,正在重塑企业的IT基础设施和软件开发模式。本文将深入探讨云原生的核心概念、关键技术以及如何在企业中实施云原生策略,以实现更高效的资源利用和更快的市场响应速度。通过分析云原生架构的优势和面临的挑战,我们将揭示它如何助力企业在激烈的市场竞争中保持领先地位。
|
1月前
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
|
2月前
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
64 3
|
2月前
|
Cloud Native 持续交付 云计算
云原生架构的演进与挑战
随着云计算技术的不断发展,云原生架构已成为企业数字化转型的重要支撑。本文深入探讨了云原生架构的概念、发展历程、核心技术以及面临的挑战,旨在为读者提供一个全面了解云原生架构的视角。通过分析Kubernetes、Docker等关键技术的应用,以及微服务、持续集成/持续部署(CI/CD)等实践案例,本文揭示了云原生架构在提高应用开发效率、降低运维成本、增强系统可扩展性等方面的显著优势。同时,也指出了云原生架构在安全性、复杂性管理等方面所面临的挑战,并提出了相应的解决策略。
|
3天前
|
人工智能 编解码 自然语言处理
AI运用爆发时代, 视频服务云原生底座“视频云”架构的全智能再进化
本文介绍了AI运用爆发时代下,视频服务云原生底座“视频云”架构的全智能再进化。随着AI技术的发展,视频内容和交互方式正经历深刻变革。文章从背景、视频AI应用挑战、视频云网端底座、AIGC时代的全智能化及未来展望五个方面展开讨论。重点阐述了云、网、端三者如何深度融合,通过AI赋能视频采集、生产、分发和消费全流程,实现视频处理的智能化和高效化。同时,展望了未来AI在视频领域的创新应用和潜在的杀手级应用。

相关产品

  • 容器镜像服务