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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 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

目录
相关文章
|
7天前
|
Kubernetes 监控 开发者
掌握容器化:Docker与Kubernetes的最佳实践
【10月更文挑战第26天】本文深入探讨了Docker和Kubernetes的最佳实践,涵盖Dockerfile优化、数据卷管理、网络配置、Pod设计、服务发现与负载均衡、声明式更新等内容。同时介绍了容器化现有应用、自动化部署、监控与日志等开发技巧,以及Docker Compose和Helm等实用工具。旨在帮助开发者提高开发效率和系统稳定性,构建现代、高效、可扩展的应用。
|
3天前
|
关系型数据库 MySQL API
|
4天前
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
6天前
|
JavaScript 持续交付 Docker
解锁新技能:Docker容器化部署在微服务架构中的应用
【10月更文挑战第29天】在数字化转型中,微服务架构因灵活性和可扩展性成为企业首选。Docker容器化技术为微服务的部署和管理带来革命性变化。本文探讨Docker在微服务架构中的应用,包括隔离性、可移植性、扩展性、版本控制等方面,并提供代码示例。
30 1
|
7天前
|
Docker 容器
docker 修改容器内的系统时间
【10月更文挑战第27天】docker 修改容器内的系统时间
125 2
|
14天前
|
Web App开发 iOS开发 Docker
Docker 容器的日志
【10月更文挑战第31天】
26 5
|
13天前
|
Kubernetes Cloud Native 开发者
云原生技术入门:Kubernetes和Docker的协作之旅
【10月更文挑战第22天】在数字化转型的浪潮中,云原生技术成为推动企业创新的重要力量。本文旨在通过浅显易懂的语言,引领读者步入云原生的世界,着重介绍Kubernetes和Docker如何携手打造弹性、可扩展的云环境。我们将从基础概念入手,逐步深入到它们在实际场景中的应用,以及如何简化部署和管理过程。文章不仅为初学者提供入门指南,还为有一定基础的开发者提供实践参考,共同探索云原生技术的无限可能。
22 3
|
10天前
|
存储 持续交付 虚拟化
|
14天前
|
存储 缓存 Docker
docker中挂载数据卷到容器
【10月更文挑战第16天】
19 2
|
4天前
|
Docker 容器
docker 容器重启
【10月更文挑战第30天】docker 容器重启
9 0