云原生容器Clouder认证:基于容器搭建企业级应用—课时4:容器如何使用

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

思考:选择何种容器技术?

在了解了容器的来源及其基本概念后,小陈对容器技术产生了浓厚的兴趣,想尽快上手实操一番。关于实操中的容器技术选型,小陈又找到了大刘。

小陈:师傅,谢谢你指明了容器这条路。我学习了容器的基础知识,的确感觉容器对我们这个应用场景更合适。

大刘:我只是比你早学习和接触容器罢了,你好好学习,马上也能让容器成为工作中的得力帮手。考考你,容器是一种通用技术,那么在容器的技术实现中,知名的有哪些?

小陈:Docker,还有…… 抱歉,其他的就不知道了。

大刘:不错,知道其中最重要的一个。Docker是众多容器实现中最流行的技术,是容器技术的事实标准,其他知名的还有:rkt,  Podman,LXC,Containerd,Buildah 等等。

小陈:学习了。那么,我们搭建公司网站,就用Docker咯?

大刘:OK,你可以先试试。


 

Docker容器基础知识

Docker 是一个流行的用 Go 语言开发的开源项目,基于Linux内核的cgroup、namespace及 AUFS 等技术,对进程进行封装隔离,由 Dotcloud 公司开发。Docker已成为容器行业的事实标准。

小陈发现一个有趣的事情,容器的英文是Container,有集装箱的意思。而Docker的中文翻译是码头工人的意思。那么,码头工人不就是搬运集装箱的吗?此外,Docker的Logo是一堆集装箱放在鲸鱼上,作为鲸鱼的docker,就是一个标准化的运输系统。

Docker核心概念

Docker 有三大核心概念,分别是容器(Container)、镜像(Image)和仓库(Repository)。

  • 镜像类似虚拟机的镜像,通俗的理解就是安装文件,相当于是容器的模板,可以根据不同的镜像来创建不同的容器。镜像和容器的关系可以理解为面向对象中类和实例对象的关系。

  • 容器类似一个轻量级的沙箱,容器是根据镜像创建的应用运行实例,具体运行应用程序的一个进程,可以将其启动、开始、停止、删除,而这些容器都是相互隔离、互不可见的。

  • 仓库类似代码仓库,是 Docker 集中存放镜像文件的场所。仓库有本地镜像仓库 Docker-Registry 和公共镜像仓库 Docker Hub,平时使用本地仓库的镜像,没有的话可以去公共镜像仓库下载。

image.png

可以用编程中面向对象的概念来做类比:镜像可以看成一个容器可以看做是类的实例化对象。一个类可以有多个对象。同理,一个镜像可以有多个容器。容器是由镜像实例化而来。简单来说,镜像是文件,容器是进程,仓库是保存镜像的地方

 

Build, Ship and Run Any App, Anywhere

Docker的主要目标是build、ship and run any app,anywhere,即通过对应用组件的封装、分发、部署、运行等生命周期的管理,达到应用组件级别的一次封装、到处运行,即在任何平台都可以构建、运输、运行任何应用

Docker的build、ship和run的含义如下:

  • Build(构建镜像):镜像就像是集装箱,包括文件以及运行环境等资源。
  • Ship(运输镜像):主机和仓库间运输,这里的仓库就像是超级码头一样。
  • Run (运行镜像):运行的镜像就是一个容器,容器就是运行程序的地方。

 

Docker的使用方式

Docker 在主流的操作系统和云平台上都可以使用,包括 Linux (如 ubuntu、Debian、CentOS、Redhat 等)、MacOS 和 Windows 操作系统,以及 阿里云 等云平台(Aliyun.com)。

推荐尽量使用 Linux 操作系统来运行 Docker,因为目前 Linux 操作系统对 Docker的支持是原生的,使用体验最好。

我们可以在阿里云云服务器ECS上,很便捷的部署配置一个Docker开发环境,以快速体验Docker容器的使用。Docker的安装比较简单,主要步骤如下(具体步骤将会在实验环节进行实践)

  1. 在阿里云(Aliyun.com)开通一台云服务器ECS
  2. 在ECS上安装必要的系统工具
  3. 添加镜像软件源信息
  4. 加入镜像源地址
  5. 安装并更新Docker-CE
  6. 查看Docker的版本,确认安装成功。若能正常显示版本信息,则安装成功
  7. 启动Docker服务
  8. 设置Docker为开机自启动

Docker基础命令

以下是Docker的一些常用命令,可以帮助初学者快速熟悉和使用Docker。

命令

指令说明

docker ps

检查容器正在运行列表

docker run

容器运行

docker rm

删除容器

docker exec

在运行的容器中运行额外的进程

docker create

创建一个尚未启动的容器,start 启动创建了的容器

docker wait

阻塞对容器的其他调用方法,直到容器停止后退出

docker stop

停止一个运行中的容器

docker start

启动一个或多个已经被停止的容器

docker top

显示主机为每个容器中的进程所分配的PID

docker diff

查看安装容器镜像时的改动,返回文件改动列表

docker inspect

显示docker为该容器保留的所有元数据(一个json文件)

docker commit

向镜像提交一个新的文件记录

通过Docker命令,运行一个容器一般情况下只需要三步:

  1. pull:从镜像仓库中将相应的镜像下载下来;
  2. list:当镜像下载完成之后就可以通过docker images 来查看本地镜像,会列出一个完整的镜像列表,可以在列表中选中想要的镜像;
  3. run:当选中镜像之后,就可以通过 docker run 来运行这个镜像,得到想要的容器。当然可以通过多次运行得到多个容器。

通过docker指令运行容器

 



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

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

相关文章
|
2月前
|
运维 Cloud Native 持续交付
深入理解云原生架构及其在现代企业中的应用
随着数字化转型的浪潮席卷全球,企业正面临着前所未有的挑战与机遇。云计算技术的迅猛发展,特别是云原生架构的兴起,正在重塑企业的IT基础设施和软件开发模式。本文将深入探讨云原生的核心概念、关键技术以及如何在企业中实施云原生策略,以实现更高效的资源利用和更快的市场响应速度。通过分析云原生架构的优势和面临的挑战,我们将揭示它如何助力企业在激烈的市场竞争中保持领先地位。
|
2月前
|
运维 Cloud Native 安全
云原生技术在现代企业中的应用与挑战####
本文探讨了云原生技术在现代企业IT架构中的关键作用,分析了其带来的优势和面临的主要挑战。通过实际案例分析,揭示了如何有效应对这些挑战,以实现业务敏捷性和技术创新的平衡。 ####
|
2月前
|
Cloud Native 持续交付 开发者
云原生技术在现代企业中的应用与实践####
本文深入探讨了云原生技术的核心概念及其在现代企业IT架构转型中的关键作用,通过具体案例分析展示了云原生如何促进企业的敏捷开发、高效运维及成本优化。不同于传统摘要仅概述内容,本部分旨在激发读者对云原生领域的兴趣,强调其在加速数字化转型过程中的不可或缺性,为后续详细论述奠定基础。 ####
|
19天前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
针对本地存储和 PVC 这两种容器存储使用方式,我们对 ACK 的容器存储监控功能进行了全新升级。此次更新完善了对集群中不同存储类型的监控能力,不仅对之前已有的监控大盘进行了优化,还针对不同的云存储类型,上线了全新的监控大盘,确保用户能够更好地理解和管理容器业务应用的存储资源。
|
24天前
|
存储 监控 对象存储
ACK容器监控存储全面更新:让您的应用运行更稳定、更透明
介绍升级之后的ACK容器监控体系,包括各大盘界面展示和概要介绍。
|
2月前
|
Kubernetes Cloud Native 物联网
云原生技术在现代软件开发中的应用与挑战####
本文探讨了云原生技术的兴起背景、核心理念及其在现代软件开发中的广泛应用。通过具体案例分析,揭示了云原生架构如何促进企业数字化转型,并指出了在实施过程中面临的主要挑战及应对策略。 ####
|
2月前
|
人工智能 缓存 异构计算
云原生AI加速生成式人工智能应用的部署构建
本文探讨了云原生技术背景下,尤其是Kubernetes和容器技术的发展,对模型推理服务带来的挑战与优化策略。文中详细介绍了Knative的弹性扩展机制,包括HPA和CronHPA,以及针对传统弹性扩展“滞后”问题提出的AHPA(高级弹性预测)。此外,文章重点介绍了Fluid项目,它通过分布式缓存优化了模型加载的I/O操作,显著缩短了推理服务的冷启动时间,特别是在处理大规模并发请求时表现出色。通过实际案例,展示了Fluid在vLLM和Qwen模型推理中的应用效果,证明了其在提高模型推理效率和响应速度方面的优势。
云原生AI加速生成式人工智能应用的部署构建
|
2月前
|
Cloud Native JavaScript Docker
云原生技术:构建现代应用的基石
在数字化转型的浪潮中,云原生技术如同一艘承载梦想的航船,引领企业驶向创新与效率的新海域。本文将深入探索云原生技术的核心价值,揭示其如何重塑软件开发、部署和运维模式,同时通过一个简易代码示例,展现云原生应用的构建过程,让读者领略到云原生技术的魅力所在。
|
2月前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
81 5
|
2月前
|
开发框架 安全 开发者
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。本文探讨了 Docker 在多平台应用构建与部署中的作用,包括环境一致性、依赖管理、快速构建等优势,以及部署流程和注意事项,展示了 Docker 如何简化开发与部署过程,提高效率和可移植性。
80 4