Docker核心技术(一)

简介: 本文介绍了Docker的核心技术——容器,包括容器的定义、与虚拟机的区别,以及容器的生命周期阶段(创建、运行、暂停、停止和删除)。同时详细讲解了容器的网络管理和Docker提供的五种网络驱动模式。

Docker核心技术容器


容器(Container):容器是一种轻量级、可移植、并将应用程序进行的打包的技术,使应用程序可以在几乎任何地方以相同的方式运行。


  • Docker将镜像文件运行起来后,产生的对象就是容器。
  • 容器具备一定的生命周期。        


容器与虚拟机


  • 容器和虚拟机一样,都会对物理硬件资源进行共享使用。
  • 容器和虚拟机的生命周期比较相似(创建、运行、暂停、关闭等等)。
  • 容器中或虚拟机中都可以安装各种应用如redis、mysql等。


Docker容器与虚拟机不同点:


  • 虚拟机的创建、启动和关闭都是基于一个完整的操作系统。一个虚拟机就是一个完整的操作系统。而容器直接运行在宿主机的内核上,其本质上以一系列进程的结合。
  • 容器是轻量级的,虚拟机是重量级的。


容器的生命周期


容器的生命周期包括创建、运行、暂停、停止和删除等阶段


首先,在创建阶段,Docker引擎会读取Dockerfile中的指令构建镜像,然后使用该镜像创建一个新的容器,并在主机文件系统中生成一个独特的文件系统层。


接着,在运行阶段,容器中的应用开始执行,处理请求并与Docker引擎进行交互。此阶段中,可以进行网络设置和端口映射,确保容器可以与外界通信。


此外,在暂停阶段,容器内的所有进程都将被暂停,但可以在之后继续运行。而在停止阶段,容器将不再接受新的请求,并且其资源及状态可以被保留以便未来重启。最后,在删除阶段,将移除容器及其所有相关数据,包括主机文件系统中的文件系统层。



容器创建 – docker create


利用镜像创建出一个Created 状态的待启动容器:docker create [OPTIONS] IMAGE [COMMAND] [ARG...]


-t, --tty                   分配一个伪TTY,也就是分配虚拟终端


-i, --interactive        即使没有连接,也要保持STDIN打开


--name                  为容器起名,如果没有指定将会随机产生一个名称



容器启动 – docker start


将一个或多个处于创建状态或关闭状态的容器启动起来:docker start [OPTIONS] CONTAINER [CONTAINER...]


-a, --attach        将当前shell的 STDOUT/STDERR 连接到容器上  


-i, --interactive        将当前shell的 STDIN连接到容器上    


容器创建并启动 – docker run


利用镜像创建并启动一个容器,docker run [OPTIONS] IMAGE [COMMAND] [ARG...]


-t, --tty                   分配一个伪TTY,也就是分配虚拟终端          


-i, --interactive        即使没有连接,也要保持STDIN打开


-d, --detach        在后台运行容器并打印出容器ID


--rm            当容器退出运行后,自动删除容器


容器暂停 – docker pause


暂停一个或多个处于运行状态的容器 :docker pause CONTAINER [CONTAINER...]


容器取消暂停 – docker unpause


docker unpause CONTAINER [CONTAINER...]


容器关闭 – docker stop


关闭一个或多个处于暂停状态或者运行状态的容器


docker stop [OPTIONS] CONTAINER [CONTAINER...]



-t, --time int           关闭前,等待的时间,单位秒  


容器终止 – docker kill


强制并立即关闭一个或多个处于暂停状态或者运行状态的容器


docker kill [OPTIONS] CONTAINER [CONTAINER...]


-s,--signal string       指定发送给容器的关闭信号


docker stop和docker kill的区别:


  • Docker stop:该命令首先向容器发送SIGTERM信号,允许容器内的进程捕获此信号并执行一系列结束前的清理工作,如保存当前状态、完成正在处理的请求或释放占用的资源。如果在默认的宽限期(通常为10秒)内,容器内的主进程没有响应SIGTERM信号并优雅地停止,Docker将随后发送SIGKILL信号,以确保容器被终止。
  • Docker kill:该命令直接向容器发送SIGKILL信号,这是一个不能被捕获或忽略的信号,会立即终止容器中的所有进程。这种停止方式不允许进行任何清理或保存状态的操作,因此被认为是一种“硬”终止方式。




Docker核心技术(二)+https://developer.aliyun.com/article/1544302?spm=a2c6h.13148508.setting.17.1fa24f0eHs4uWw

相关文章
|
11天前
|
Unix Linux Docker
CentOS停更沉寂,RHEL巨变限制源代:Docker容器化技术的兴起助力操作系统新格局
操作系统是计算机系统的核心软件,管理和控制硬件与软件资源,为用户和应用程序提供高效、安全的运行环境。Linux作为开源、跨平台的操作系统,具有高度可定制性、稳定性和安全性,广泛应用于服务器、云计算、物联网等领域。其发展得益于庞大的社区支持,多种发行版如Ubuntu、Debian、Fedora等满足不同需求。
39 4
|
2月前
|
持续交付 开发者 Docker
探索容器化技术Docker及其在现代软件开发中的应用
探索容器化技术Docker及其在现代软件开发中的应用
|
1月前
|
开发框架 安全 开发者
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。本文探讨了 Docker 在多平台应用构建与部署中的作用,包括环境一致性、依赖管理、快速构建等优势,以及部署流程和注意事项,展示了 Docker 如何简化开发与部署过程,提高效率和可移植性。
65 4
|
1月前
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
75 3
|
2月前
|
持续交付 开发者 Docker
探索容器化技术Docker及其在现代软件开发中的应用
探索容器化技术Docker及其在现代软件开发中的应用
|
2月前
|
运维 Kubernetes Docker
深入理解容器化技术:Docker与Kubernetes的协同工作
深入理解容器化技术:Docker与Kubernetes的协同工作
53 1
|
2月前
|
安全 持续交付 Docker
深入理解并实践容器化技术——Docker 深度解析
深入理解并实践容器化技术——Docker 深度解析
67 2
|
2月前
|
运维 Kubernetes Cloud Native
云原生技术入门:Kubernetes和Docker的协同工作
【10月更文挑战第43天】在云计算时代,云原生技术成为推动现代软件部署和运行的关键力量。本篇文章将带你了解云原生的基本概念,重点探讨Kubernetes和Docker如何协同工作以支持容器化应用的生命周期管理。通过实际代码示例,我们将展示如何在Kubernetes集群中部署和管理Docker容器,从而为初学者提供一条清晰的学习路径。
|
2月前
|
运维 持续交付 虚拟化
深入解析Docker容器化技术的核心原理
深入解析Docker容器化技术的核心原理
52 1
|
2月前
|
Prometheus 监控 持续交付
深入理解Docker容器化技术:从基础到实践
深入理解Docker容器化技术:从基础到实践

热门文章

最新文章