2.Docker基本架构简介与安装实战

news/2024/11/26 5:19:36/

1.认识Docker的基本架构

下面这张图是docker官网上的,介绍了整个Docker的基础架构,我们根据这张图来学习一下docker的涉及到的一些相关概念。
在这里插入图片描述

1.1 Docker的架构组成

Docker架构是由Client(客户端)、Docker Host(服务端)、Registry(远程仓库)组成。

  • Client(客户端):使用Docker API向服务端发送命令,比如build、run、pull、push等命令;
  • Docker Host(服务端):启动了一个守护进程,它来真正管理镜像和容器,相应的,也接收客户端的命令;
  • Registry(远程仓库):主要就是存储镜像文件,方便共享,类似git一样。

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

1.2 Docker的三大要素

  • Image(镜像):Docker镜像就好比一个模板,可以通过这模板来创建容器服务,通过这个镜像可以创建多个容器。
  • container(容器):容器就可以理解成一个简易版的Linux运行时环境,在这个Linux中,还运行这我们的应用程序。
  • 仓库(repository):集中存放镜像文件的地方。仓库分为公开仓库和私有仓库,Docker官方的公开仓库是Docker Hub:https://hub.docker.com/。当然我们国内也有不少公开仓库,包括阿里云、网易云等;

那么怎么更好的理解这散打要素呢?学过java等面向对象编程的同学,我们可以类比一下,所谓的镜像其实就是对应java的类,容器就对应java的对象(类的实例),一个类可以new 出很多对象实例,同理,一个镜像也可以生成很多容器;仓库就可以类比Maven仓库,只不过Maven放的是jar包,而仓库放的是镜像文件。

1.3 小结

Image可以看作是容器的模板,Docker根据image镜像文件生成容器实例,同一个image镜像,可以生成多个同时运行的容器实例。

2.Docker 整体架构及底层通信原理

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

3.Docker在Centos7上安装Docker

  1. 官网安装指南

    https://docs.docker.com/engine/install/centos/

  2. 检查CentOS的版本

    1. CentOS 7
    2. CentOS 8 (stream)
    3. CentOS 9 (stream)
    4. centos-extras库必须启用,默认情况下,此存储库是启用的,但是如果已禁用它,则需要重新启用它。
    
  3. 删除旧的版本

    1. 卸载Docker Engine

      sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
      

在这里插入图片描述

  1. 手动删除所有的image、container和文件

    sudo rm -rf /var/lib/docker
    sudo rm -rf /var/lib/containerd
    

    在这里插入图片描述

  2. 安装基本的工具包

    yum install -y yum-utils
    

在这里插入图片描述

  1. 设置稳定的镜像仓库

     sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.reposudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    

    我们最好加上国内的阿里云镜像仓库,否则有时候会拉取不下来,错误如下:
    在这里插入图片描述

  2. 安装Docker Engine

    1. 安装最新版本的docker

       sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
      

在这里插入图片描述
在这里插入图片描述

  1. 启动docker

    sudo systemctl start docker
    

    在这里插入图片描述

  2. 验证docker

    sudo docker run hello-world
    

    在这里插入图片描述

就这么简单,我们就成功的安装了docker。

在这里插入图片描述

4.安装镜像加速器

由于网络原因,可能导致我们的下载速度比较慢,我们最好加入安装镜像加速器,加速下载镜像文件。这里我们以安装阿里云的镜像加速器为例来说明。

我们在阿里云产品上找到容器镜像服务—>镜像工具—>镜像加速器,可以看到里面的详细的配置和说明。

在这里插入图片描述

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://xxxxxs.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

http://www.ppmy.cn/news/1192436.html

相关文章

后端神器!代码写完直接调试!

Apipost推出IDEA插件非常省时高效&#xff0c;写完代码直接可以进行调试&#xff0c;而且支持生成接口文档&#xff0c;真是后端神器啊&#xff01; 可以点击下方链接安装更新或在插件商店中搜索安装 下载链接&#xff1a;https://plugins.jetbrains.com/plugin/22676-apipos…

mybatis-plus 使用 mybatis-plus-join 增强多表关联查询能力

一、mybatis-plus-join mybatis-plus 原生的能力不支持多表关联&#xff0c;对于这种场景只能通过写SQL进行实现&#xff0c;而mybatis-plus-join 则是建立在 mybatis-plus 基础之上的扩展框架&#xff0c;可以在不影响原有能力之上通过简单的API即可实现多表关联能力而无需编…

C++11 auto限制

限制&#xff1a; auto 不能用于函数参数auto 不能用于非静态成员变量auto 无法定义数组auto 无法推导出模板参数 推荐一个零声学院项目课&#xff0c;个人觉得老师讲得不错&#xff0c;分享给大家&#xff1a; 零声白金学习卡&#xff08;含基础架构/高性能存储/golang云原生…

Spring@Lazy是如何解决构造函数循环依赖问题

Spring实例化源码解析之循环依赖CircularReference这章的最后我们提了一个构造函数形成的循环依赖问题&#xff0c;本章就是讲解利用Lazy注解如何解决构造函数循环依赖和其原理。 准备工作 首先创建两个构造函数循环依赖的类&#xff0c;TestA和TestB&#xff0c;代码如下&am…

掌握口才与演讲技巧,让你职场中脱颖而出

在职场竞争日趋激烈的今天&#xff0c;口才和演讲能力已经成为一个人成功的重要标志之一。掌握了优秀的口才与演讲技巧&#xff0c;不仅可以帮助你在工作中更好地表达自己和传达信息&#xff0c;同时也可以让你在同事和上级心中留下深刻印象&#xff0c;从而在职场中脱颖而出&a…

坚持#第420天~阿里云轻量服务器内存受AliYunDunMonito影响占用解决方法

阿里云轻量服务器内存受AliYunDunMonito影响占用解决方法&#xff0c;亲测有效&#xff1a; Mobax好卡啊&#xff0c;那就直接在阿里云后台操作即可&#xff0c;阿里云后台也可以上传文件。 Navicat mysql好卡啊&#xff0c;那就直接在阿里云后台最上面帮助的右边有个数据库&…

机器人仿真-gazebo学习笔记(3)URDF和机器人模型

1.URDF简介 URDF(统一机器人麦哦书格式)是ROS中的重要机器人模型描述格式&#xff0c;ROS提供了URDF文件的c解析器&#xff0c;可以解析URDF文件中使用XML格式的机器人模型。 urdf - ROS Wiki 自己查阅ros官方对URDF的介绍其实会强于大部分网上流传的文章。 1.URDF文件常用的…

【UE】从UI拖拽生成物体 —— 更改位置与定点销毁

本篇在上一篇博客&#xff08;【UE】从UI中拖拽生成物体-CSDN博客&#xff09;基础上继续增加更改生成的Actor的位置与定点销毁Actor的功能。 目录 效果 步骤 一、修改生成好的Actor位置 解决问题一&#xff1a;从UI拖出多个actor后&#xff0c;只能对第一个拖出的actor的…