Docker核心技术之容器详解(一)

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Docker核心技术之容器详解(一)

一、容器简介



容器(Container):容器是一种轻量级、可移植、并将应用程序进行的打包的技术,使应用程序可以在几乎任何地方以相同的方式运行 Docker将镜像文件运行起来后,产生的对象就是容器。容器相当于是镜像运行起来的一个实例。 容器具备一定的生命周期。 另外,可以借助docker ps命令查看运行的容器,如同在linux上利用ps命令查看运行着的进程那样。


二、容器与虚拟机



Docker容器与虚拟机相同点


容器和虚拟机一样,都会对物理硬件资源进行共享使用。


容器和虚拟机的生命周期比较相似(创建、运行、暂停、关闭等等)。


容器中或虚拟机中都可以安装各种应用,如redis、mysql、nginx等。也就是说,在容器中的操作,如同在一个虚拟机(操作系统)中操作一样。


同虚拟机一样,容器创建后,会存储在宿主机上:linux上位于/var/lib/docker/containers下


Docker容器与虚拟机不同点


注意:容器并不是虚拟机,但它们有很多相似的地方


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


容器是轻量级的,虚拟机是重量级的。首先容器不需要额外的资源来管理(不需要Hypervisor、Guest OS),虚拟机额外更多的性能消耗;其次创建、启动或关闭容器,如同创建、启动或者关闭进程那么轻松,而创建、启动、关闭一个操作系统就没那么方便了。


也因此,意味着在给定的硬件上能运行更多数量的容器,甚至可以直接把Docker运行在虚拟机上。


              20190422235858960.png             20190422235909971.png


三、容器的生命周期



虚拟机的生命周期


2019042300001192.png


容器的生命周期


2019042300004423.png


四、容器的生命周期管理



容器创建 – docker create


作用:     利用镜像创建出一个Created 状态的待启动容器


命令格式:  


docker create [OPTIONS] IMAGE [COMMAND] [ARG...]


命令参数(OPTIONS):


-t, --tty                   分配一个伪TTY,也就是分配虚拟终端         
                                     -i, --interactive        即使没有连接,也要保持STDIN打开                   
                                     --name                  为容器起名,如果没有指定将会随机产生一个名称


命令参数(COMMAND\ARG):     COMMAND 表示容器启动后,需要在容器中执行的命令,如ps、ls 等命令     ARG 表示执行 COMMAND 时需要提供的一些参数,如ps 命令的 aux、ls命令的-a等等


命令演示:


20190423000410333.png


容器启动 – docker start


作用:     将一个或多个处于创建状态或关闭状态的容器启动起来


命令格式:    


docker start [OPTIONS] CONTAINER [CONTAINER...]


命令参数(OPTIONS):    


-a, --attach        将当前shell的 STDOUT/STDERR 连接到容器上     
                                          -i, --interactive        将当前shell的 STDIN连接到容器上
命令演示:


20190423000529916.png20190423000539511.png


docker run 与 docker create + docker start


docker run 相当于 docker create + docker start –a       前台模式
docker run -d 相当于 docker create + docker start       后台模式


容器暂停 – docker pause


作用:     暂停一个或多个处于运行状态的容器


命令格式:


docker pause CONTAINER [CONTAINER...]


命令参数(OPTIONS):     无


命令演示:


20190423000729415.png


容器取消暂停 – docker unpause


作用:     取消一个或多个处于暂停状态的容器,恢复运行


命令格式:  

docker unpause CONTAINER [CONTAINER...]


命令参数(OPTIONS):     无


命令演示:


20190423000829892.png


容器关闭 – docker stop


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


命令格式:    


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


命令参数(OPTIONS):  


-t, --time int           关闭前,等待的时间,单位秒(默认 10s)
命令演示:

20190423000938630.png


容器终止 – docker kill


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


命令格式:    


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


命令参数(OPTIONS):  


-s, --signal string       指定发送给容器的关闭信号 (默认“KILL”信号)


命令演示:


20190423001128705.png

目录
相关文章
|
1天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
16 6
|
1天前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
12 5
|
1天前
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
13 3
|
1天前
|
开发框架 安全 开发者
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。本文探讨了 Docker 在多平台应用构建与部署中的作用,包括环境一致性、依赖管理、快速构建等优势,以及部署流程和注意事项,展示了 Docker 如何简化开发与部署过程,提高效率和可移植性。
13 3
|
1天前
|
存储 安全 数据安全/隐私保护
Docker 容器化应用管理更加高效,但数据安全和业务连续性成为关键。
在数字化时代,Docker 容器化应用管理更加高效,但数据安全和业务连续性成为关键。本文探讨了 Docker 应用的备份与恢复策略,涵盖备份的重要性、内容、方法及常见工具,制定备份策略,恢复流程及注意事项,并通过案例分析和未来趋势展望,强调备份与恢复在保障应用安全中的重要性。
11 2
|
1天前
|
Kubernetes 负载均衡 调度
详细对比了Docker Swarm和Kubernetes两大容器编排技术,从集群管理能力、扩展性、资源利用率、服务发现与负载均衡、多租户支持及易用性等方面进行了深入分析
本文详细对比了Docker Swarm和Kubernetes两大容器编排技术,从集群管理能力、扩展性、资源利用率、服务发现与负载均衡、多租户支持及易用性等方面进行了深入分析,并针对不同应用场景提供了选型建议,帮助读者根据自身需求和技术背景做出合适的选择。
9 2
|
6天前
|
Kubernetes Linux 开发者
深入探索容器化技术——Docker 的实战应用
深入探索容器化技术——Docker 的实战应用
29 5
|
9天前
|
运维 Cloud Native 云计算
云原生之旅:Docker容器化实战
本文将带你走进云原生的世界,深入理解Docker技术如何改变应用部署与运维。我们将通过实际案例,展示如何利用Docker简化开发流程,提升应用的可移植性和伸缩性。文章不仅介绍基础概念,还提供操作指南和最佳实践,帮助你快速上手Docker,开启云原生的第一步。
|
5天前
|
持续交付 开发者 Docker
探索容器化技术Docker及其在现代软件开发中的应用
探索容器化技术Docker及其在现代软件开发中的应用
|
7天前
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!