Docker基本介绍

一、定义

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
解决了运行环境和配置问题的软件容器, 方便做持续集成并有助于整体发布的容器虚拟化技术。
容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker 和传统虚拟化方式的不同:

  • 传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;
  • 容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。
  • 每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。

二、核心概念

1.Docker镜像

类似于虚拟机镜像,可以理解为一个面向Docker引擎的只读模板,包含了文件系统。
例如:一个镜像可以包含一个完整的Ubuntu操作系统环境,可以把它称为一个Ubuntu镜像。镜像也可以安装了Apache应用程序,可以把它称为一个Apache镜像。
镜像是创建Docker容器的基础。通过版本管理和增量的文件系统,Docker提供了一套十分简单的机制来创建和更新现有的镜像,用户甚至可以从网上下载一个已经做好的应用镜像,并通过简单的命令就可以直接使用。

2.Docker容器

Docker容器(Container)类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。
容器是从镜像创建的应用运行实例,可以将其启动、开始、停止、删除,而这些容器都是相互隔离、互不可见的。
可以把容器看做一个简易版的Linux系统环境(包括root用户权限、进程空间、用户空间和网络空间等),以及运行在其中的应用程序打包而成的应用盒子。
镜像自身是只读的。容器从镜像启动的时候,Docker会在镜像的最上层创建一个可写层,镜像本身将保持不变。

容器与镜像的关系类似面向对象编程中的对象和类

3.Docker仓库

https://hub.docker.com/

Docker仓库(Repository)类似于代码仓库,是Docker集中存放镜像文件的场所。
注册服务器:Registry
注册服务器是存放仓库的地方,其上往往放着多个仓库。每个仓库集中存放某一类镜像,往往包括多个镜像文件,通过不同的标签(tag)来进行区分。
根据所存储的镜像公开分享与否,Docker仓库可以分为

  • 公开仓库(Public):最大的公开仓库是Docker Hub,存放了数量庞大的镜像供用户下载。国内的公开仓库包括Docker Pool等,可以提供稳定的国内访问。
  • 私有仓库(Private):用户如果不希望公开分享自己的镜像文件,Docker也支持用户在本地网络内创建一个只能自己访问的私有仓库。
    当用户创建了自己的镜像之后就可以使用push命令将它上传到指定的公有或者私有仓库。这样用户下次在另外一台机器上使用该镜像时,只需将其从仓库上pull下来就可以了。

4.总结

Docker 本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就是image镜像文件。只有通过这个镜像文件才能生成Docker容器实例(类似Java中new出来一个对象)。image文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。

  • 镜像文件:image 文件生成的容器实例,本身也是一个文件,称为镜像文件
  • 容器实例:一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建一个对应的运行实例,也就是我们的容器
  • 仓库:存放镜像的地方,可以把镜像发布到仓库中,需要的时候再从仓库中拉下来

三、Docker安装

官网:www.docker.com
Linux安装:

$ sudo wget -qO- https://get.docker.com/ | sh 
安装docker本身
sudo:当前用户是普通用户,但执行该命令时使用root身份执行
wget:命令行下载工具
-q:使wget输出不要那么多
O-:把wget的输出直接输出到标准输出,而不是输出到文件
|:管道 
| sh:把输出交给sh

$ sudo usermod -aG docker xxx  
允许非root用户(非superuser)来运行docker
修改用户组,把这个用户组加入到docker组里面(用户如果在docker组里,则可以不用sudo,不需要root就可以执行docker命令)

检查是否安装成功:docker info
如果执行此命令报错,则是docker没有启动,在centos中,使用

service docker start

安装docker.png

查看信息.png

四、Docker架构

1.Docker结构

image.png

Docker是一个Client-Server架构的系统,Docker守护进程运行在主机上,通过socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。

docker架构.png

  • Docker host:进行docker操作的宿主机
  • Docker Daemon:负责各种各样的docker操作,比如下载docker镜像,运行一个容器,客户端通过命令,把命令交给docker daemon,由docker Daemon来做实际的操作。
  • Registry:互联网的saas服务,daemon可以和registry交互,比如获取一个image,或者push一个image;是Docker的镜像存储服务端。

架构.png
客户端和守护进程进行操作,把命令送给守护进程,守护进程拖取镜像,运行容器并和远端的镜像仓库进行交互。

2.Docker运行的基本流程

docker架构.png

  • 1.用户是使用 Docker Client与 Docker Daemon 建立通信,并发送请求给后者
  • 2.Docker Daemon作为 Docker 架构中的主体部分,首先提供 Docker Server 的功能使其可以接受 Docker Cient 的请求。
  • 3.Docker Engine 执行 Docker 内部的一系列工作,每一项工作都是以一个 Job 的形式的存在。
  • 4.Job 的运行过程中,当需要容器镜像时,则从 Docker Registy 中下载镜像,并通过镜像管理动 Graph driver将下载镜像以Graph的形式存储
  • 5.当需要为 Docker创建网络环境时,通过网络管理驱动 Network driver 创建并配置 Docker容器网络环境。
  • 6.当需要限制 Docker 容器运行资源或执行用户指令等操作时,则通过 Exec driver来完成。
  • 7.Libcontainer是一项独立的容器管理包,Network driver以及Exec driver都是通过Libcontainer来实现具体对容器进行的操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/30182.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

UnityVR--UIManager--UI管理1

目录 前言 UI节点的结构 需要用到的组件 1. CanvasGroup 2. Button等控件的OnClick()监听 3. EventTrigger 建立UI工具集 1. 管理UI节点 2. UIBase包含了以下的工具 建立分面板的管理工具——以主面板MainUi为例 前言 UI在项目中的重要性不言而喻,并且UI控件的…

软件设计师第4题

首先,我是备考2023年上半年的考试。 一、历年考试题 历年的考题如下,从表中分析可以看出,动态规划法、排序算法、回溯法、分治法是很大概率考察的算法,尤其是动态规划法,本身其理解难度较高,且可以出的题型…

【计网】第二章 物理层

文章目录 物理层一、物理层的基本概念二、数据通信的基础知识2.1 数据通信系统的模型2.2 有关信道的基本概念2.3 信道的极限容量2.3.1 奈奎斯特定理2.3.1 香农定理2.3.2 信噪比 三、物理层下面的传输媒体3.1 导引型传输媒体3.2 非导引型传输媒体 四、信道复用技术4.1 频分复用 …

【小沐学Python】Python实现在线电子书(Sphinx + readthedocs + github + Markdown)

文章目录 1、简介2、安装3、创建测试工程4、项目文件结构5、编译为本地文件6、编译为http服务7、更改样式主题8、支持markdown9、修改文档显示结构10、项目托管到github11、部署到ReadtheDocs结语 1、简介 Sphinx 是一个 文档生成器 ,您也可以把它看成一种工具&…

STC15WProteus仿真HX711电子秤串口计价称重4x4键盘STC15W4K32S4

STC15WProteus仿真HX711电子秤串口计价称重4x4键盘STC15W4K32S4 Proteus仿真小实验: STC15WProteus仿真HX711电子秤串口计价称重4x4键盘STC15W4K32S4 功能: 硬件组成:STC15W4K32S4单片机 LCD12864显示器4x4矩阵键盘HX711电子秤 1.单片机通…

操作教程:EasyCVR视频融合平台如何配置平台级联?

EasyCVR视频融合平台基于云边端一体化架构,可支持多协议、多类型设备接入,在视频能力上,平台可实现视频直播、录像、回放、检索、云存储、告警上报、语音对讲、电子地图、集群、智能分析以及平台级联等。平台可拓展性强、开放度高、部署轻快&…

NUCLEO-F411RE RT-Thread 体验 (3) - GCC环境 uart驱动的移植以及console的使用

NUCLEO-F411RE RT-Thread 体验 (3) - GCC环境 uart驱动的移植以及console的使用 1、准备工作 在第一节里,我们用stm32cubemx将pa2 pa3管脚配置成usart2,用于跟st-link虚拟串口的打印用,那么我们先重定向printf函数,看这条通道是…

2009年iMac装64位windows7

前言:单位领导会花屏的iMac(24寸 2009年初版)我捡来用,应该大约是在2020年安装了32位windows7,发现不安装显卡驱动便不会花屏死机,于是就当简单的上网机用着,毕竟iMac的显示屏还是蛮不错的。现在…

windows系统安装显卡驱动软件和CUDA11.1的详细教程

深度学习目标检测框架在进行图像计算时需要GPU进行加速,需要用到硬件GPU显卡,目标检测框架和硬件GPU建立联系需要通过①显卡驱动软件;②CUDA软件依次建立联系。这两个软件,可直接从NVIDIA官网下载,版本没有非常严格的需…

python获取某乎热搜数据并保存成Excel

python获取知乎热搜数据 一、获取目标、准备工作二、开始编码三、总结 一、获取目标、准备工作 1、获取目标: 本次获取教程目标:某乎热搜 2、准备工作 环境python3.xrequestspandas requests跟pandas为本次教程所需的库,requests用于模拟h…

WinDbg安装入坑3(C#)

由于作者水平有限,如有写得不对的地方,请指正。 使用WinDbg的过程中,坑特别的多,对版本要求比较严格,如: 1 32位应用程序导出的Dump文件要用32位的WinDbg打开,想要没有那么多的问题&#xf…

SpringCloud Eureka注册服务提供者(七)

这里我们在原来的服务提供者项目 microservice-student-provider-1001 上面直接修改&#xff1a; 首先pom.xml修改&#xff0c;加上eureka客户端依赖&#xff1a; <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>…

【正点原子STM32连载】 第三十二章 光敏传感器实验 摘自【正点原子】STM32F103 战舰开发指南V1.2

第三十二章 光敏传感器实验 本章&#xff0c;我们将学习使用STM32开发板板载的一个光敏传感器。我们还是要使用到ADC采集&#xff0c;通过ADC采集电压&#xff0c;获取光敏传感器的电阻变化&#xff0c;从而得出环境光线的变化&#xff0c;并在TFTLCD上面显示出来。 本章分为如…

VSCode 安装配置教程详解包含c++环境配置方法

vscode安装教程及c环境配置详解 vscode下载安装下载C扩展插件VScode C环境配置配置环境变量检查 MinGW 安装配置编译器&#xff1a;配置构建任务检查是否安装了编译器配置完毕 vscode下载安装 地址&#xff1a;官网下载地址 直接打开下载好的.exe文件进行安装即可&#xff0…

“暗网议会”如今已成为现实

图片来源:Marcin Balcerzak 最近&#xff0c;“暗网议会”已经成为了网络犯罪分子试图证明自己影响力的最新流行语&#xff0c;安全内部人士对这个词也很感兴趣。 上周五&#xff0c;臭名昭著的亲俄黑客组织Killnet在其电报威胁帖子中使用了这个词语。随后&#xff0c;twitte…

SPEC 2006 gcc version 8.3.0 (Uos 8.3.0.3-3+rebuild) x86_64 源码编译tools 错误处理笔记

编译tools 拷贝tools到安装目录 cp /mnt/iso/tools /opt/speccpu2006/ -r 执行编译 su rootcd /opt/speccpu2006/tools/src sh -x buildtools 错误 undefined reference to __alloca 编辑./make-3.82/glob/glob.c&#xff0c;注释掉以下宏判断 you should not run config…

5-垃圾回收

目录 1.死亡对象的判断算法 1.1.引用计数算法 1.2.可达性分析算法&#xff08;主流&#xff09; PS&#xff1a;强引用、软引用、弱引用、虚引用 2.垃圾回收算法 2.1.标记-清除算法 2.2.复制算法 2.3.标记-整理算法 2.4.分代算法&#xff08;主流&#xff09; PS&…

二进制方式部署kubernetes集群

二进制方式部署kubernetes集群 1、部署k8s常见的几种方式 1.1 kubeadm Kubeadm 是一个 k8s 部署工具&#xff0c;提供 kubeadm init 和 kubeadm join&#xff0c;用于快速部署 Kubernetes 集群。 Kubeadm 降低部署门槛&#xff0c;但屏蔽了很多细节&#xff0c;遇到问题很难…

TDesign电商小程序模板解析02-首页功能

目录 1 home.json2 goods-list组件3 goods-card组件总结 上一篇我们搭建了底部的导航条&#xff0c;这一篇来拆解一下首页的功能。首页有如下功能 可以进行搜索显示轮播图横向可拖动的页签图文卡片列表 1 home.json 因为是要使用组件库的组件搭建页面&#xff0c;自然是先需要…

【win11+Visual Studio 2019 配置 PCL 1.12.1 的经验总结分享】

点云pc库的下载与安装参考另外一篇文章&#xff0c;链接&#xff1a; https://blog.csdn.net/weixin_47869094/article/details/131270772?spm1001.2014.3001.5501 各种教程里面这都很好&#xff0c;就不赘述了&#xff0c;当然&#xff0c;这里也给出一个个人认为不错的安装…