深入浅出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更容易。
文章标签:
docker 容器
热门文章
1
Redisson分布式锁深度解析:Red... Redis实现分布式锁+Redisson源码解析在某些场景下,多个进程需要以互斥...

2
深度解析Docker:容器技术提升应用部... docker是什么Docker是一种强大的开源容器技术,它将应用程序及其所有依赖...

3
Docker dockercp命令:容器... Dockercp命令详解:在Docker容器和主机之间复制文件/...

4
Redis KEY模糊查询优化策略及SC... RedisKEY*模糊查询导致交互速度慢、阻塞其他Redis操作在Redis中使...

5
Redisson深度解析:分布式锁实战与... Redis:redis分布式锁实战之redisson在分布式环境中;个体锁不能再...

6
Python float()函数:Web... Pythonfloat(input())的用法,web中的应用float(inp...

7
Java单例模式深入解析及实例代码分享 单例模式单例模式实例在Java中,单例模式确保类只存在一个实例。该模式的主要作用...

8
Docker核心原理解析:深入理解Nam... DOCKER总结Docker是一个开源应用程序容器引擎,允许开发人员将其应用程序...

9
C语言字符串输出技巧:指针与数组首地址的... C语言字符串输出Chara[]="aaaaa";printf...

10
200本Java开发精选书籍免费分享!附... Java开发书籍推荐(200多本)我整理了一份Java开发的邮件资源,一共大概2...