• 了解docker


    docker版本演进

    • lxc: lxc 是最早的 linux 容器技术,早期版本的 docker 直接使用 lxc 来实现容器的底层功能。虽然使用者相对较少,但 lxc 项目仍在持续开发演进中
    • libcontainer: docker 从 0.9 版本开始自行开发了 libcontainer 模块来作为 lxc 的替代品实现容器底层特性,并在 1.10 版本彻底去除了 lxc。在 1.11 版本拆分出 runc 后,libcontainer 也随之成为了 runc 的核心功能模块, runc 后续变成了容器标准
    • moby: moby 是 docker 公司发起的开源项目,其中最主要的部分就是同名组件 moby,事实上这个 moby 就是 dockerd 目前使用的开源项目名称, docker 项目中的 engine(dockerd)仓库现在就是从 moby 仓库 fork 而来的,使用 containerd 作为运行时标准 https://mobyproject.org/
    • docker-ce: docker 的开源版本, CE 指 Community Edition。 docker-ce 中的组件来自于 moby、 containerd 等其他项目 https://www.docker.com/pricing/
    • docker-ee: docker 的收费版本, EE 指 Enterprise Edition,其基础组件来源和docker-ce 是一样的,但附加了一些其他的组件和功能

    docker架构

    Docker 使用客户端-服务器 (C/S) 架构模式,使用远程 API 来管理和创建 Docker 容器,Docker 容器通过 Docker 镜像来创建
    在这里插入图片描述

    • Docker Registry:Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。 Docker Hub 供了庞大的镜像集合供使用
    • Docker daemon:Docker daemon 是服务器组件,是 Docker 最核心的后台进程,我们也把它称为守护进程
    • Docker Client:Docker 客户端通过命令行或者其他工具使用 Docker API 与 Docker 的守护进程通信
    • Docker Host:一个物理或者虚拟的机器用于执行 Docker 守护进程和容器
    • Docker Images:Docker 镜像是用于创建 Docker 容器的模板
    • Docker Container:容器是独立运行的一个或一组应用

    docker生态

    云时代需要我们针对数据量疯狂增长处理能力快速增加软件需求爆发式增长这些诉求有一套针对的解决方案:

    • 我们要处理海量的数据,如何处理?
      购买大量的服务器,并研发对应软件
    • 开发的需求需要频繁的变更上线,如何才能将修改的代码快速的分发到几百或者几千台服务器?如何共享软件?
      搞一个中心仓库,让各个服务器去下载软件包,安装,所以 CentOS 搞了 yum 仓库,docker 设计了镜像仓库, docker hub 是公共的托管仓库。
    • 软件设计好以后,怎么快速安装启动,有问题回滚?
      将 docker 需要的所有信息设计一套软件格式,把所有的依赖搞进去,并打上版本标签,这样不会换一个服务器各种问题,所以 Docker 设计了镜像。
    • 不同的开发环境怎么搭建?
      docker 设计了镜像来应对,镜像里面存放了需要运行的环境,就像我们的 iPhone 内置 ios,我们的华为 mate 50 内置鸿蒙一样,一条命令就可以完成某个环境的搭建

    docker安装

    sever版本以centos8.0为例:

    • cat /etc/*release*:检查操作系统
    • uname -a:检查cpu架构
    • 卸载旧版本(一般不需要):sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine (斜杠两边要有空格)
    • sudo yum remove docker-ce docker-ce-cli containerd.io dockerbuildx-plugin docker-compose-plugin docker-ce-rootless-extras:卸载历史版本
    • 删除这些文件夹的内容(如果有的话):
      /var/lib/docker
      /var/lib/containerd
      /data/var/lib/docker
      /etc/docker/daemon.json
    • yum install -y yum-utils device-mapper-persistent-data lvm2:安装相关工具
    • sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo:配置仓库
    • ll /etc/yum.repos.d/:检查仓库是否多了一个docker-ce.repo
    • sed -i 's@//download.docker.com@//mirrors.ustc.edu.cn/docker-ce@g' /etc/yum.repos.d/docker-ce.repo:配置国内源
    • sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin:安装新版本
    • sudo systemctl daemon-reload:配置加载
    • sudo systemctl start docker:启动服务
    • sudo systemctl enable docker:开启启动
    • sudo systemctl status docker:查看服务状态
    • docker versiondocker info查看相关信息
    • 对于systemd中在配置文件/etc/docker/daemon.json中加入:
    {
    	"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/", 
                       		"http://hub-mirror.c.163.com",
                      	  	"https://cr.console.aliyun.com"
                        	]
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • sudo systemctl daemon-reload:配置加载
    • sudo systemctl restart docker:重新启动服务
      在这里插入图片描述
    • 改变docker数据目录:在配置文件/etc/docker/daemon.json中加入(注意json格式不要忘了前面的逗号):
    {
    "data-root": "目录"
    }
    
    • 1
    • 2
    • 3

    GUI版本安装以win11为例:

    • 确保CPU虚拟化已启动
    • 勾选:适用于linux的windows子系统 和 虚拟化平台
      在这里插入图片描述
    • 重启
    • powershell管理员运行检查wsl --status如果是1就wsl --update更新,wsl --set-default-version 2设置默认为2,
    • Windows商店下载Ubuntu,安装
    • 下载docker安装
  • 相关阅读:
    安装mayavi
    找出缺失和重复的数字 - (LeetCode)
    自己动手写数据库:并发管理器的实现,以及并发交易流程的分析
    好用合并工具安利!需要的来关注一下
    PID控制原理
    ArcGIS要点和难点以及具体应用和优缺点介绍
    【精选】网络安全大厂面试题 2.0
    vector接口介绍&迭代器失效问题
    Win32 USB设备通信
    docker 部署 若依 Ruoyi springboot+vue分离版
  • 原文地址:https://blog.csdn.net/qq_41420788/article/details/131684646