1. Docker的介绍和安装 (二)

news2024/11/14 21:30:04

5 Docker的原理

5.1 Namespace

Namespace(命名空间)提供了一个独立的工作环境,Docker使用Namespace来隔离容器,使得每个容器都有自己独立的系统资源(如进程ID、主机名、网络等)。

  • PID Namespace:隔离进程ID,保证每个容器有独立的进程树。
  • NET Namespace:隔离网络资源,使每个容器有独立的网络栈。
  • IPC Namespace:隔离进程间通信资源,如信号量、消息队列等。
  • MNT Namespace:隔离文件系统挂载点,使每个容器有独立的文件系统视图。
  • UTS Namespace:隔离主机名和域名,使每个容器有独立的主机名。
    在这里插入图片描述

5.2 Control Groups (cgroups)

Control Groups(cgroups)是Linux内核的功能,Docker使用cgroups来限制和隔离容器的资源使用(如CPU、内存、磁盘I/O等)。

  • 资源限制:通过cgroups,可以为每个容器设置资源使用上限,防止单个容器消耗过多资源。
  • 资源监控:cgroups提供了详细的资源使用统计,便于监控和优化容器的性能。
    在这里插入图片描述

5.3 UnionFS

UnionFS(联合文件系统)是Docker镜像的基础,它允许将多个文件系统叠加在一起,形成一个单一的文件系统。

  • 层级结构:每个Docker镜像由多层文件系统构成,镜像的修改只会在最上层生效,其他层保持不变。
  • 写时复制:当容器需要修改文件时,Docker会将文件复制到最上层文件系统,然后进行修改,这种方式提高了性能并节省了存储空间。

在这里插入图片描述

5 安装Docker

5.1 在Windows上安装Docker

使用Docker Desktop
  1. 下载Docker Desktop

    • 访问Docker官网下载Windows版Docker Desktop。
  2. 安装Docker Desktop

    • 双击下载的安装包,按照安装向导步骤完成安装。
    • 启动Docker Desktop,等待Docker引擎启动完成。
  3. 验证安装

    • 打开命令行,执行docker --version命令,检查Docker版本信息。
配置Docker Desktop
  • 启用WSL 2:在Docker Desktop设置中,选择WSL 2作为默认的Linux内核。
  • 设置资源限制:在Docker Desktop设置中,调整CPU、内存和磁盘的使用限制。

5.2 在macOS上安装Docker

使用Docker Desktop
  1. 下载Docker Desktop

    • 访问Docker官网下载macOS版Docker Desktop。
  2. 安装Docker Desktop

    • 打开下载的.dmg文件,将Docker拖到应用程序文件夹。
    • 启动Docker应用程序,等待Docker

引擎启动。

  1. 验证安装
    • 打开终端,执行docker --version命令,确认Docker版本。
配置Docker Desktop
  • 设置资源:在Docker Desktop设置中,调整CPU和内存的使用限制。
  • 启用文件共享:在Docker Desktop设置中,配置文件共享路径。

5.3 在Linux上安装Docker

使用包管理器安装Docker
  1. 更新系统包管理器

    sudo apt-get update  # Debian/Ubuntu
    sudo yum update      # CentOS/RHEL
    
  2. 安装Docker

    • Debian/Ubuntu

      sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
      curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
      sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
      sudo apt-get update
      sudo apt-get install docker-ce
      
    • CentOS/RHEL

      sudo yum install -y yum-utils
      sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
      sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
      

      上面是官方提供的地址,由于某些原因可能访问不上,可以使用阿里云提供的仓库地址:

      yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
      
      
  3. 启动Docker服务

    sudo systemctl start docker
    sudo systemctl enable docker
    
  4. 验证安装

    docker --version
    docker run hello-world
    
配置Docker用户权限
  • 将当前用户添加到Docker组,以便不需要sudo运行Docker命令:

    sudo usermod -aG docker $USER
    
配置Docker镜像加速器

你会发现,上面的** docker run hello-world**可能运行不成功,原因就是无法从Docker仓库下载到镜像,那就需要我们自己配置一个地址,目前比较靠谱的方案是使用阿里云的容器镜像服务,就会生成一个私有的镜像地址,并且阿里云后台也会生成配置镜像加速器的过程。如下图:

在这里插入图片描述
后面就可以愉快地使用Docker了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SBTI科学碳目标认证是什么?SBTI科学碳目标的重要性

SBTI科学碳目标认证,作为企业在应对气候变化和追求可持续发展道路上的重要里程碑,其认证过程严谨而系统。以下是获得SBTI科学碳目标认证的详细步骤: 首先,企业需要在线注册并提交承诺书,郑重承诺在未来24个月内提交科学…

Linux网络-配置IP

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 本来IP配置应该放在Linux安装完成的就要配置的,但是由于那个时候对Linux不怎么熟悉,所以单独列了一个…

每日一题 LeetCode03 无重复字符的最长字串

1.题目描述 给定一个字符串 s ,请你找出其中不含有重复字符的最长字串的长度。 2 思路 可以用两个指针, 滑动窗口的思想来做这道题,即定义两个指针.一个left和一个right 并且用一个set容器,一个length , 一个maxlength来记录, 让right往右走,并且用一个set容器来…

扫雷-C语言

一、前言: 众所周知,扫雷是一款大众类的益智小游戏,它的游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输。 今天,我们的目的就是通过C语言来实现一个简…

Open函数使用 Json与pickle Os模块

一. 文件操作与 open() 函数 Open函数是Python中用于打开文件的内置函数,其基本语法如下: open(file, moder, buffering-1, encodingNone, errorsNone, newlineNone, closefdTrue, openerNone) 各参数说明: file: 要打开的文件…

34_YOLOv5网络详解

1.1 简介 YOLOV5是YOLO(You Only Look Once)系列目标检测模型的一个重要版本,由 Ultralytics 公司的Glenn Jocher开发并维护。YOLO系列以其快速、准确的目标检测能力而闻名,尤其适合实时应用。YOLOV5在保持高效的同时&#xff0c…

El-Table 表格的表头字段切换

最近写了一个小功能,比较有意思,特此博客记录。 提出需求:需要表头字段变化,但是我在官网上的表格相关上查找,没有发现便捷方法。 于是我有两个想法:1.做三个不同的表格。2.做一个表格使用不同的表头字段。…

2024.7.24 远程连接到另一设备(win)上的vrep时无响应(防火墙!)

Windows防火墙禁止了软件的端口的通信,打开即可 如何设置Windows 7 防火墙端口规则

字典集合案例

1.统计字符 统计字符串中每个字符出现的次数 s l like summer very much #去掉空格 s s.replace(" ","") d dict() for i in s:if i in d:d[i] 1else:d[i] 1 for i in d:print(i,d[i]) 2.求不重复的随机数 #导入随机数 import random a int(input(&q…

VMware 上安装 CentOS 7 教程 (包含网络设置)

**建议先看一些我安装VMware的教程,有些网络配置需要做一下 1.打开VMware,创建虚拟机 2.勾选自定义,点击下一步 3.点击下一步 4.勾选“稍后安装操作系统”,点击下一步 5.勾选linux,勾选centos7,点击下一步…

每日Attention学习12——Exterior Contextual-Relation Module

模块出处 [ISBI 22] [link] [code] Duplex Contextual Relation Network for Polyp Segmentation 模块名称 Exterior Contextual-Relation Module (ECRM) 模块作用 内存型特征增强模块 模块结构 模块思想 原文表述:在临床环境中,不同样本之间存在息肉…

Python算法基础:解锁冒泡排序与选择排序的奥秘

在数据处理和算法设计中,排序是一项基础且重要的操作。本文将介绍两种经典的排序算法:冒泡排序(Bubble Sort)和选择排序(Selection Sort)。我们将通过示例代码来演示这两种算法如何对列表进行升序排列。 一…

BGP选路之Local Preference

原理概述 当一台BGP路由器中存在多条去往同一目标网络的BGP路由时,BGP协议会对这些BGP路由的属性进行比较,以确定去往该目标网络的最优BGP路由。BGP首先比较的是路由信息的首选值(PrefVal),如果 PrefVal相同,就会比较本…

python-NLP:2词性标注与命名实体识别

文章目录 词性标注命名实体识别时间命名实体(规则方法)CRF 命名实体识别方法 词性标注 词性是词汇基本的语法属性,通常也称为词类。词性标注是在给定句子中判定每个词的语法范畴,确定其词性并加以标注的过程。例如,表示…

爱回收严选买的二手iPad Air 4已经使用一周啦!

有多少人是跟我一样,手里一旦有点小钱就留不住,只想花出去的? 本24届应届生目前刚开始实习工作,虽然工资低的可怜,但是比起大学时期还是宽裕了不少。 于是发完工资的我就非常想消费!而我最近最想要的就是…

Fedora40安装telnet-server启用telnet服务

Fedora40安装telnet-server启用telnet服务 安装 telnet-server sudo yum install telnet-server或 sudo dnf install telnet-server启用服务 fedora40 或 CentosStream9 不能用 yum或dnf安装xinetd, telnet-server 的服务名为: telnet.socket 启用 telnet.socket.service …

Kithara和Halcon (二)

Kithara使用Halcon QT 进行二维码实时识别 目录 Kithara使用Halcon QT 进行二维码实时识别Halcon 简介以及二维码检测的简要说明Halcon 简介Halcon的二维码检测功能 Qt应用框架简介项目说明关键代码抖动测试测试平台:测试结果: 开源源码 Halcon 简介以…

C++与C中,由函数形参test(int *a)引出的问题

文章参考来源: 1.c函数中形参为引用的情况;C中a和&a的区别 描述: 最近在看循环单链表时,看到有篇文章中,链表初始化函数为图下,我在想,这个函数形参(类似 "int * & a"一样)到…

数据结构(二叉树-1)

文章目录 一、树 1.1 树的概念与结构 1.2 树的相关术语 1.3 树的表示 二、二叉树 2.1 二叉树的概念与结构 2.2特殊的二叉树 满二叉树 完全二叉树 2.3 二叉树的存储结构 三、实现顺序结构二叉树 3.1 堆的概念与结构 3.2 堆的实现 Heap.h Heap.c 默认初始化堆 堆的销毁 堆的插入 …

关于使用宝兰德bes中间件进行windows部署遇到的问题——license不存在

报错信息 日志文件中是这么报错的 遇到的具体情况: 实例按照**的文档手册正常步骤下去节点部署的时候没有报错,成功启动,但是日志里会有报错信息,也是license不存在实例创建的时候失败了,报错信息如下所示 解决方法…