了解docker

news2025/1/13 7:39:09

了解docker

  • docker版本演进
  • docker架构
  • docker生态
  • 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"
                    	]
}
  • sudo systemctl daemon-reload:配置加载
  • sudo systemctl restart docker:重新启动服务
    在这里插入图片描述
  • 改变docker数据目录:在配置文件/etc/docker/daemon.json中加入(注意json格式不要忘了前面的逗号):
{
"data-root": "目录"
}

GUI版本安装以win11为例:

  • 确保CPU虚拟化已启动
  • 勾选:适用于linux的windows子系统 和 虚拟化平台
    在这里插入图片描述
  • 重启
  • powershell管理员运行检查wsl --status如果是1就wsl --update更新,wsl --set-default-version 2设置默认为2,
  • Windows商店下载Ubuntu,安装
  • 下载docker安装

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

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

相关文章

Flutter饱受争议的7个缺点,大家怎么看?

Flutter是一款由Google推出的跨平台移动应用开发框架,近年来备受关注。尽管Flutter在某些方面表现出色,但仍然有一些人对它的发展前景表示怀疑。近期一些文章针对Flutter的发展提出了不少质疑和批评,称其难以成为移动应用开发的“顶流明星”&…

Hacker 资讯 | 10 月下旬区块链黑客松活动汇总

「TinTin Hacker 快讯」是 TinTinLand 建立的一个资讯专栏,汇集近期线上线下的黑客松及 Grant,旨在帮助开发者和区块链爱好者获取最新的黑客松资讯,鼓励他们了解并根据自身情况参与不同的黑客松,更好地建设 Web3 生态。 ETHMiami …

1.初识MySQL

初识 MySQL 1.服务器处理客户端请求2.常用存储引擎3.关于存储引擎的一些操作3.1 查看当前服务器程序支持的存储引擎3.2 设置表的存储引擎3.2.1 创建表时指定存储引擎3.2.2 修改表的存储引擎 4.总结 MySQL 默认采用 TCP/IP 的方式来处理客户端与服务器连接过程。 1.服务器处理客…

2023高频前端面试题-vue

1. 什么是 M V VM Model-View-ViewModel 模式 Model 层: 数据模型层 通过 Ajax、fetch 等 API 完成客户端和服务端业务模型的同步。 View 层: 视图层 作为视图模板存在,其实 View 就是⼀个动态模板。 ViewModel 层: 视图模型层 负责暴露数据给 View 层&…

解决oracle12c安装失败【INS-30131】执行安装程序验证所需要的初始设置失败问题

最近看到很多公司都要求会使用Oracle数据库,所以我就在网上找了Oracle教程,打算学习一下,可人生就是喜欢捉弄我,Oracle安装竟然都出了问题,别提学习了,可真让我很难受,那么安装出现了什么问题呢? 看下图: 原因 - 无法访问临时位置。 操作 - 请确保当前用户具有访问临时位置所…

muduo源码学习base——Atomic(原子操作与原子整数)

Atomic(原子操作与原子整数) 前置知识AtomicIntegerTget()getAndAdd()getAndSet() 关于原子操作实现无锁队列(lock-free-queue) 前置知识 happens-before: 用来描述两个操作的内存可见性 如果操作 X happens-before 操作 Y,那么 X 的结果对于…

极智AI | 有趣的羊驼系列大模型

欢迎关注我的公众号 [极智视界],获取我的更多经验分享 大家好,我是极智视界,本文来介绍一下 有趣的羊驼系列大模型。 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码下载,链接:https://t.zsxq.com/0aiNxERDq "羊驼模型" 在大模型的介绍中应…

CodeWhisperer proxy代理连不上(解决)

报错: 2023-10-24 14:15:50 [INFO]: selected AWS ID sign in 2023-10-24 14:15:50 [ERROR]: API response (oidc.us-east-1.amazonaws.com /device_authorization): {} 2023-10-24 14:15:50 [ERROR]: webviewId"authWebview": Error: Webview error->…

【外汇天眼】很多交易高手都容易忽视的问题:“路径依赖”!

一、“路径依赖”与“均值回归” 在过去五到十年内,如果你一直通过采用某一策略取得持续的超额收益,那么你很难认识到这种策略可能出现错误。 即使经历了一两年的失效,大多数人都会继续相信并采用这一策略。这受到沉没成本、个人声誉以及多种…

Android Apk一键打包上传至蒲公英平台的gradle脚本

一、背景 项目中每次手动打包后,生成的测试包,都需要手动打开蒲公英平台的网址,登录账号,手动上传apk。之前写过一键上传至fir平台的脚本,想着这次可以搞一下一键打包上传至蒲公英的gradle脚本,提高下工作…

Linux下QT打开文件选择对话框时,程序报错退出

系统:Ubuntu QString fileName QFileDialog::getOpenFileName(this, "open", "./", "document Files (*.pdf)"); 调用该语句弹出文件对话框时,程序崩溃退出 错误提示: (Widget:5272): Gtk-WARNING **: 14…

73 应急响应-WEB分析phpjavaweb自动化工具

目录 应急响应:必备知识点:准备工作:有明确信息网站被入侵:无明确信息网站被入侵:常见分析方法: 演示案例:WindowsIISSql-日志,搜索LinuxBT_Nginxtp5-日志,后门360星图日志自动分析工…

Spring Cloud之服务注册与发现(Eureka)

目录 Eureka 介绍 角色 实现流程 单机构建 注册中心 服务提供者 服务消费者 集群搭建 注册中心 服务提供者 自我保护机制 原理分析 Eureka 介绍 Eureka是spring cloud中的一个负责服务注册与发现的组件,本身是基于REST的服务,同时还提供了…

虚拟化 vs. 裸金属:K8s 部署环境架构与特性对比

伴随着 IT 云化转型的逐步推进,越来越多的用户加入应用容器化改造的行列,并使用 Kubernetes(K8s)进行容器部署管理。然而,令不少用户感到困惑的是,由于大部分应用此前都部署在虚拟化或超融合环境&#xff0…

批量处理图片,轻松转换JPG到TIFF,让你的图片管理更优化!

作为图片处理的专业人士,您可能经常需要处理大量的图片文件,其中包括各种不同的格式,如JPG、PNG、GIF等。然而,不同的格式有着不同的优缺点,有时候为了更好地保存和传输图片,您可能需要将其转换为其他格式。…

NEFU系统分析与设计

系统分析与设计概述 用户故事 用来描述用户希望得到的功能 三要素:角色、活动、商业价值 举例:作为一个“网站管理员”,我想要“统计每天有多少人访问了我的网站”,以便于“我的赞助商了解我的网站会给他们带来什么收益。 系统…

Jmeter(十二):线程组元件第三方插件的线程组压力和负载线程详解

线程组(thread group) 线程组元件是任何一个测试计划的开始点。在一个测试计划中的所有元件 都必须在某个线程下。所有的任务都是基于线程组。 一个线程组可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一 个虚拟用户。多个用户同时去执行相同的一批次任…

升讯威在线客服系统的并发高性能数据处理技术:为多线程处理同步数据

我在业余时间开发维护了一款免费开源的升讯威在线客服系统,也收获了许多用户。对我来说,只要能获得用户的认可,就是我最大的动力。 最近客服系统成功经受住了客户现场组织的压力测试,获得了客户的认可。 客户组织多名客服上线后&a…

uniapp跨域

配置 /manifest.json "devServer" : { "https" : false, "port" : 7101, "proxy": { "/api": { "target": "https://域名", "changeOrigin": t…

3D模型如何添加表面贴图?

1、模型表面贴图介绍 模型表面贴图(Texture Mapping)是一种将纹理映射到三维模型表面的技术,用于增加模型的细节和真实感。它通过在模型的每个表面点上应用纹理坐标,并将纹理像素与模型的对应点进行匹配,使得模型表面…