深入浅出Docker:容器技术全解析
创始人
2024-12-15 12:32:33
0 次浏览
0 评论
什么是docker?有什么用?
Google基于Linux内核的cgroup、namespace、UnionFS技术推出的操作系统级虚拟化技术称为Docker。它对进程进行封装和隔离,使进程独立于宿主机和其他隔离的进程,因此Docker也被称为容器。
Docker从0.7版本开始,从1.11版本开始,开始去掉LXC,使用自研的lib容器,也进化到使用runC和containerrd。
Docker是一个类似于虚拟机的Linux系统工具,但与虚拟机不同的是,Docker提供了一个私有的虚拟环境。
用通俗的语言来说,Docker可以理解为私有虚拟机,如果没有特殊需求,通常可以作为私有虚拟机来使用。
一个Docker镜像(image)相当于一个包含了系统整个根文件系统的容器模板,例如官方提供的ubuntu:18.04镜像就包含了最小的Ubuntu18.04系统。
镜像包含程序、库、资源、配置等文件以及运行时准备的配置参数,但不包含动态数据,创建后内容不会改变。
容器是基于镜像进行操作的实体,镜像和容器之间的关系类似于类和实例,可以创建、启动、停止、删除、暂停等。
容器本质上是进程,但它们运行在隔离的命名空间中,并且具有独立的文件系统、网络配置、进程空间和用户ID空间,使得容器化的应用程序比直接在主机上运行更安全。
容器存储层类似于分层镜像存储。
容器运行时根据镜像创建容器存储层,用于保存容器运行时的动态数据。
容器存储层的生命周期与容器的生命周期相同,当容器死亡时,存储层也随之消失,因此敏感数据不应该保存在容器存储层中,而应该保存在数据中。
用于保存数据的文件夹。
存储库是用于存储和分发Docker映像的中央服务。
一个存储库可以包含多个标签,每个标签对应一个图像。
存储库名称通常显示为由两部分组成的路径,但不是绝对的,取决于所使用的DockerRegistry软件或服务。
通过存储库和标签,用户可以访问和使用不同版本的镜像。
开始使用Docker的最佳方法是按照GitHub上的教程学习Docker的基本用法和概念:训练期间。

docker容器是什么
可能每个人都在某种程度上见过docker。但很多人不知道它是什么。
那么什么是Docker容器呢?事实上,Docker容器是一个非常易于使用的开源应用程序容器引擎。
什么是Docker容器?答:它是一个开源的应用容器引擎。
对于开发者来说使用起来也会非常方便。
什么是Docker容器?1.将应用程序及其依赖项打包到可移植容器中非常方便。
2.它几乎没有性能开销,并且可以轻松地跨机器和数据中心运行。
3.我们定期进行渗透测试,因此您不必担心安全性,而且非常可靠。
4.可用服务器众多,不用担心运行问题。
Docker的镜像和容器的区别
1.Docker镜像Docker镜像和Docker容器之间的区别并不容易理解。如果Linux内核是第0层,那么无论你如何运行Docker,它都位于内核层之上。
该Docker镜像是只读镜像,位于第1层,无法修改,也无法保存状态。
一个Docker镜像可以构建在另一个Docker镜像之上,并且这种关系可以是多层级联。
第一层的图像称为基础图像(BaseImage),其他层(除顶层外)的图像称为父图像(ParentImage)。
这些镜像继承父镜像的所有属性和设置,并将它们自己的配置添加到Dockerfile中。
Docker镜像由镜像ID来标识。
镜像ID是一个64个字符的十六进制字符串。
但是当我们运行一个镜像时,我们通常不会引用镜像的镜像ID,而是引用镜像的名称。
要列出所有有效的本地映像,可以使用#dockerimages命令。
图像可以发布为不同的版本。
如上图所示,neo4镜像有两个版本:最新版本和2.1.5版本。
您可以使用pull命令添加标题:#dockerpullubuntu:14.04#dockerpullubuntu:12.042.Docker容器可以使用以下命令创建Docker容器:#dockerrunimagename在所有镜像文件之上添加一个可写层。
这个可写层运行在CPU处理器上,有两种不同的状态:运行和退出。
这是一个Docker容器。
当我们使用dockerrun启动一个容器时,Docker容器就进入运行状态。
一旦我们让Docker容器运行起来,我们就对其进行从运行状态到阻塞状态的所有更改,以永久写入容器的文件系统。
请记住,容器更改将写入容器的文件系统,而不是Docker映像。
我们可以使用同一个镜像来启动多个Docker容器。
这些容器在启动后处于活动状态,并且彼此隔离。
对其中一个容器的更改仅限于容器本身。
如果容器底层镜像被修改,运行中的容器不会受到影响,也不会发生自动更新。
如果我们想要将容器更新为其镜像的新版本,我们必须确保数据的格式正确,否则我们可能会得到容器中的所有注释。
64个字符的十六进制字符串,定义容器ID,即容器的唯一标识符。
容器之间的通信通过容器ID来标识。
由于容器ID字符太长,因此只需填写容器ID的前4个字符即可。
当然我们也可以使用容器的名称,但是使用4个字符的容器ID更容易。
相关文章

深度解析:同步与异步、阻塞与非阻塞,以及...
2024-12-23 13:05:21
C语言实现字符ASCII排序输出教程
2025-03-26 07:31:11
Docker错误排查:如何使用docke...
2025-03-04 15:59:52
Docker容器操作指南:创建、启动与管...
2024-12-16 07:16:14
MySQL安装后无法使用?常见问题及解决...
2024-12-19 08:56:03
C语言编程:简单步骤教你打印心形图案
2024-12-17 12:51:43
Docker入门:基础概念与常用命令详解
2025-03-28 11:13:57
升级Linux Docker至最新版1....
2025-02-02 05:51:23
C语言中fun函数:自定义函数定义与调用...
2025-04-09 23:37:24
解密百钱买百鸡难题:张秋俭经典数学问题求...
2024-12-25 10:15:53最新文章
10
2025-04
10
2025-04
10
2025-04
10
2025-04
10
2025-04
10
2025-04
10
2025-04
10
2025-04
10
2025-04
10
2025-04
热门文章
1
OpenWrt Docker环境下部署多...
n1刷openwrt上面的DOCKER有什么用独立的程序和结构。Docker将应...
2
Redisson分布式锁深度解析:Red...
Redis实现分布式锁+Redisson源码解析在某些场景下,多个进程需要以互斥...
3
Java程序员简历IT技能描述指南:精准...
Java程序员简历IT技能怎么写Java程序员简历中的技能描述应该具体、有针对性...
4
Redis分布式锁事故复盘:揭秘超卖背后...
一次由Redis分布式锁造成的重大事故,避免以后踩坑!使用基于Redis的分布式...
5
深度解析Docker:容器技术提升应用部...
docker是什么Docker是一种强大的开源容器技术,它将应用程序及其所有依赖...
6
Redisson分布式锁原理解析与微服务...
Redis:Redisson看门狗续锁实现分布式锁的原理,及如何避坑在微服务环境...
7
Redis Lua 脚本:原子执行与分布...
redis lua脚本原子性如何保证REDIS的LUA脚本执行是原子的,即在执行...
8
Python while循环应用:模拟小...
python里面如何用while循环做这样一道数学题小球从一百米高空坠落每次反弹...
9
UOSLinux/统信系统Docker容...
Linux/统信UOS系统上面设置docker容器开机自启动当服...
10
构建个人在线图书馆:简单书库管理与Doc...
搭建个人图书馆!一个简单的在线个人书库构建一个简单的在线图书馆,您可以使用在线个...