CI/CD-云原生技术栈概览-Docker

云原生:一种基于云计算技术构建和运行应用程序的方法论,目标是充分利用云计算环境,以实现应用程序的高可用性、易扩展性和敏捷迭代。

主流云原生应用技术栈:云计算提供运行环境,Docker让应用“打包”和“运行”变得简单一致,而Kubernetes则让管理大规模Docker容器变得自动化、智能化。

云计算

通过网络按需、可配置地共享计算资源的模式。

计算资源:包括网络、服务器、存储、应用和服务

IaaS (基础设施即服务):提供最底层的计算、网络、存储资源

PaaS (平台即服务):提供应用开发和部署的平台(如操作系统、数据库、开发工具)

SaaS (软件即服务):直接提供可直接使用的应用软件。

部署形式:公有云(第三方提供商)、私有云(企业内部)

Docker

一种容器技术

通过容器化技术,将应用及其所有依赖打包进一个轻量级的、可移植的容器中

软件运行不再关心环境问题:搭建一次,到处能用

镜像 (Image):一个只读的模板,包含了运行应用所需的一切(代码、库、环境变量等)。

--(容器的静态模板),仓库(Repository):存储和分发镜像

容器 (Container):镜像的运行实例。它是一个轻量级的、独立的可执行软件包。

--(镜像的运行实体)

运行的容器组成:静态容器+独立的进程空间+其中运行的进程

Kubernetes/K8s

一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。

 

主要功能:

服务发现和负载均衡:自动将流量分配到健康的容器上。

自动伸缩:根据CPU使用率等指标,自动增加或减少容器的副本数。

自我修复:当容器失败时,自动重启;当节点宕机时,自动将容器重新调度到其他节点。

滚动更新和回滚:发布新版本时,逐步替换旧容器,如果出错则自动回滚。

 

 

虚拟机技术

包括KVM、Vmware、Hyper-V、Xen等

虚拟机 容器
在一个硬件上用软件模拟完整操作系统
在一个操作系统中划分出不同运行环境

虚拟机技术通过硬件虚拟化,解决了物理服务器资源利用率低和应用环境冲突的两大难题。

1、环境完全隔离。

解决应用环境一致性和快速部署问题

更轻量、启动更快、资源占用更少。

 

Docker使用

  • 典型工作流
    • docker build -t my-app . (构建镜像)
      • 实际过程:以当前目录为上下文,读取其中的 Dockerfile 文件,并按照其指令构建一个名为 my-app 的镜像
    • docker run -d -p 8080:80 my-app (运行容器,映射端口)
    • docker ps (查看运行中的容器)
    • docker stop <container-id> (停止容器)
    • docker push my-app (推送镜像到仓库)

创建容器

1、编写应用代码

2、创建Dockerfile:描述应用的,如何运行、运行所需内容等

3、对该Dockerfile执行docker build 命令 --将应用与运行需要的内容打包为镜像

4、运行该镜像,生成容器并在运行里面的程序

关系图

image

操作镜像

使用Dockerfile创建镜像

docker build
查看镜像 docker images

压缩镜像为tar文件

1、docker save <image-id>
--用于保存完整镜像(含所有镜像层和历史记录),适合迁移

2、docker export <container-id>

--用于导出容器当前文件系统快照,体积更小,会丢失历史记录。

 

 

 

操作容器

创建容器 docker create <image-id>
运行容器 docker start <container-id>
创建并运行容器 docker run <image-id> = docker create+docker start
查看容器 docker ps
查看日志 docker logs <container-id>
停止容器

docker stop <container-id>

docker kill <container-id>

容器->镜像

docker commit <container-id>

 

posted @ 2026-06-24 16:54  Fēngwèi  阅读(6)  评论(0)    收藏  举报