网站首页 > 精选文章 / 正文
一、Docker 简介
什么是Docker?
Docker的英文翻译是”搬运工“的意思,他搬运的东西就是我们常说的集装箱Container,Container 里面装的是任意类型的App,我们的开发人员可以通过Docker 将App变成一种标准化的、可移植的、自管理的组件,我们可以在任何主流的操作系统中开发、调试和运行。
从概念上来看Docker和我们传统的虚拟机比较类似,只是更加轻量级,更加方便使用
Docker和虚拟机主要的区别有一下几点:
1. 虚拟化技术依赖的是物理CPU和内存,是硬件级别的;而我们的Docker是构建在操作系统层面的,利用操作系统的容器化技术,所以Docker同样的可以运行在虚拟机上面
2. 虚拟机中的系统就是我们常说的操作系统镜像,比较复杂;而Docker比较轻量级,我们可以使用Docker部署一个独立的Redis,就像类似于在虚拟机当中安装一个Redis应用,但是我们用Docker部署的应用是完全隔离的。
3. 在传统的虚拟化技术是通过快照来保存的;而Docker引用了类似于源码的管理机制,将容器的快照历史版本一一记录下来,切换成本之低
4. 传统的虚拟化技术在构建系统的时候非常复杂;而Docker可以通过一个简单的Dockerfile文件来构建整个容器,更重要的是Dockerfile可以手动编写,这样应用开发人员可以通过发布Dockerfile来定义应用的环境和依赖,这样对于持续交付非常有利
Docker Engine
Docker Engine是一个C/S架构的应用程序,主要包含下面几个组件;
- 常驻后台进程Dockerd
- 一个用来和Dockerd交互的REST API Server
- 命令行CLI接口,通过和REST API进行交互
Docker 架构
Docker使用了C/S体系架构,Docker客户端与Docker守护进程通信,Docker守护进程负责构建,运行和分发Docker容器。Docker客户端和守护进程可以在同一个系统上运行,也可以将Docker客户端连接到远程Docker守护进程。Docker客户端和守护进程使用REST API通过UNIX套接字或网络接口进行通信。
Docker Damon DockerD用来监听Docker API的请求和管理Docker对象,比如镜像、容器、网络和Volume
Docker Client docker client是我们和Docker进行交互的最主要的方式方法,比如可以通过docker run来运行一个容器,然后我们的这个client会把命令发送给上面的Docker
Docker Registry 用来存储Docker镜像的仓库,Docker Hub是Docker官方提供的一个公共仓库,而且Docker默认也是从Docker Hub上查找镜像的,当然你也可以很方便的运行一个私有仓库,当我们使用docker pull或者docker run命令时,就会从我们配置的Docker镜像仓库中去拉取镜像,使用docker push命令时,会将我们构建的镜像推送到对应的镜像仓库中
Images 镜像,镜像是一个制度模板,带有Docker容器的说明,一般来说的,镜像会基于另外的一些基础镜像上面安装一个Nginx服务器,这样就可以构建一个属于我们自己的镜像了
Containers 容器,容器是一个镜像的可运行的实例,可以使用Docker REST API或者CLI来操作容器,容器的实质是进程,但与直接在宿主执行的实例进程不同,容器进程属于自己的独立的命名空间。因此容器可以拥有自己的root文件系统、自己的网络配置、自己的进程空间、甚至自己的用户ID。容器内的经常是运行在一个隔离的环境里,使用起来,就好像在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全
关注点赞不迷路
Tags:docker是什么意思
猜你喜欢
- 2025-04-24 基于网络安全的Docker逃逸
- 2025-04-24 第一次使用docker
- 2025-04-24 Docker的几种精简版本Buster、Alpine、Stretch比较
- 2025-04-24 速达在线:云计算时代不可不了解的“集装箱云”
- 2025-04-24 Docker容器化部署最佳实践:从入门到精通
- 2025-04-24 鞋头软蹋蹋、被抢着复刻的复古军靴Boondocker,到底坚挺在哪里?
- 2025-04-24 Docker 大势已去,Podman 万岁
- 2025-04-24 面试官:你说你精通 Docker,那你来详细说说 Dockerfile 吧
- 2025-04-24 起源:Docker容器技术
- 2025-04-24 【系统架构】什么是容器?什么容器编排?你都知道吗?