当前位置: 首页 > news >正文

学习Docker前提:多环境安装Docker

一、Docker 版本

Docker发展过程中衍生了以下版本,目前我们学习和使用提到的版本是docker-ce。

Ixc:上文中提到,Ixc是最早的linux容器技术,早期版本的docker直接使用Ixc来实现容器的底层功能。虽然使用者相对较少,但xc项目仍在持续开发演进中。

libcontainer:docker从 O.9 版本开始自行开发了libcontainer模块来作为Ixc 的替代品实现容器底层特性,并在1.10版本彻底去除了Ixc。在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是一样的,但附加了一些其他的组件和功能。https://www.docker.com/pricing/

二、Docker 官方网站

docker官方网址

三、Docker 架构

Docker 使用客户端 - 服务器 (C/S) 架构模式,使用远程 API 来管理和创建 Docker 容器。 Docker 容器通过 Docker 镜像来创建。

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

四、Docker 生态

****新时代软件述求****

**数据量疯狂增长**

随着物联网、边缘计算等智能终端设备不断普及,受到来自物联网设备信号、元数据、
娱乐相关数据、云计算和边缘计算的数据增长的驱动,全球数据量呈现加速增长。根
IDC 分布的《数据时代 2025 》预测,全球数据量将从 2018 年的 33ZB 增至 2025
年的 175ZB ,增长超过 5 倍;中国平均增速快于全球 3% ,预计到 2025 年将增至
48.6ZB ,占全球数据圈的比例由 23.4% 提升至 27.8% 。其中,中国企业级数据量将从
2015 年占中国数据量的 49 %增长到 2025 年的 69 %。

**处理能力快速增加**

腾讯云全球服务器数量 100w+ ,数据量 EB+ 2020 年阿里云:在全国已建成 5 大超
级数据中心,阿里云在全球 22 个地域部署了上百个数据中心,服务器的总规模数已经
接近 200 万台。
某省疾控中心疫苗预约系统、全员核酸检测系统、健康码系统共 300 余台服务器,并
为核酸检测系统快速扩容计算和存储资源。

**软件需求爆发式增长**

软件发布频繁:
研发模式从瀑布开发演变为敏捷开发,原来 3 个月上一次新功能,现在两周一次,而开发过程中我们也经常遇到需要修改需求,然后变更再发布的情况。软件上线有问题需要快速回滚,对软件有着极强的版本管理和回滚诉求。

软件需要共享:
软件的研发人员、研发公司在设计、研发好一款软件的时候,如何方便的共享给他人,而又能快速的使用起来。
 
环境搭建复杂,技术种类繁多:
每个项目组使用的语言不一样,需要不同的环境,每个都得搞一套。每次都要从 yum
开始一个个完成部署安装,每次都有各种奇怪的问题,运维成本很高。

****Docker 解决方案****

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

五、Docker 安装

Server 版本
桌面版本

5.1、Ubuntu 安装 Docker

****安装依赖****

操作系统版本:

Ubuntu Kinetic 22.10
Ubuntu Jammy 22.04 (LTS)
Ubuntu Focal 20.04 (LTS)
Ubuntu Bionic 18.04 (LTS)

CPU 支持:
ARM X86_64
X86_64:是一个复杂指令级的,x86的它单核的性能非常高
ARM :则是个精简指令集的,它会有很多核来工作。

****安装Docker****

// 1.查看机器是什么机器,确认系统版本是什么
cat /etc/*release*// 2.确定CPU是什么类型, arm or x86
uname -a// 3.卸载旧版本,如果是新购买的云服务器是没有的,比如输入 docker 并没有这个命令,就不需要卸载
sudo apt-get remove docker docker-engine// 4.卸载历史版本
#卸载软件
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras -y
#删除目录
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd// 5.配置 docker 下载源
#curl 命令安装
sudo apt install curl -y
#创建 gpg key 目录
sudo mkdir -m 0755 -p /etc/apt/keyrings
#下载 gpg key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor --yes -o /etc/apt/keyrings/docker.gpg
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(lsb_release -cs) stable" | sudo tee 
/etc/apt/sources.list.d/docker.list > /dev/null
#查看系统源
cat /etc/apt/sources.list
#查看Docker源
cat /etc/apt/sources.list.d/docker.list// 6. 安装
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y       *此时可能会有引擎启动失败问题
**查看日志**
#journalctl是操作系统日志查看命令
#-e表示从末尾看
#-u表示看哪个系统组件的,我们的组件是docker,所以指令为:journalctl -eu docker// 7.自动启动配置·
#配置加载
sudo systemctl daemon-reload 
#启动服务
sudo systemctl start docker 
#开启启动
sudo systemctl enable docker
#查看服务状态
sudo systemctl status docker// 8.检查安装结果查看版本
docker version
docker info// 9. 执行 hello-world 可以看到 Hello from Docker,表面 docker 服务正常
sudo docker run hello-world

****实战经验***

**Docker 镜像源修改**

对于使用 systemd 的系统( Ubuntu 16.04+ Debian 8+ CentOS 7 ), 如果是 腾讯云, 在配置文件 /etc/docker/daemon.json 中加入
JSON
{"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
如果是 阿里云 ,因为只对企业开放海外代理,只能找私人的一些开放的源,目前可以
使用的源如下
{"registry-mirrors": ["https://docker.m.daocloud.io","https://dockerhub.timeweb.cloud","https://huecker.io"]
}
重新启动 dockerd
sudo systemctl daemon-reload
sudo systemctl restart docker

docker info 查看信息:

**Docker 目录修改**

Docker 默认的安装目录为 /var/lib/docker, 这里面会存放很多很多镜像,所以我们在安
装的时候需要考虑这个目录的空间,有三种解决方案。
1 )将 /var/lib/docker 挂载到一个大的磁盘,这种一般我们能控制挂载目录,像腾讯
云这种云厂商在安装 K8s 的节点的时候提供了挂载选项,可以直接挂载这个目录过去
2 )安装之前挂载一个大的磁盘,然后创建一个软链接到 /var/lib/docker ,这样就自
动安装到我们空间比较大的磁盘了
3 )安装了 docker ,然后发现忘了配置这个目录,我们需要修改 docker 的配置文件
#假定我们磁盘的大的目录为 /data
mkdir -p /data/var/lib/docker 
# 编辑配置文件
vi /etc/docker/daemon.json
# 输入下面的 json
{
"data-root": "/data/var/lib/docker"
}
# 加载配置
sudo systemctl daemon-reload 
# 重启 docker
sudo systemctl restart docker 
#查看 docker 状态
sudo systemctl status docker
配置文件信息 /etc/docker/daemon.json


修改前在/var/lib/docker 下:

修改后在/data/var/lib/docker 下

5.2、CentOS 安装 Docker

****安装依赖****

操作系统版本:

CentOS 7 -- 停止更新已经不再支持
CentOS 8 (stream)
CentOS 9 (stream)

CPU 支持:
ARM X86_64
X86_64:是一个复杂指令级的,x86的它单核的性能非常高
ARM :则是个精简指令集的,它会有很多核来工作。

****安装Docker****

// 1.查看机器是什么机器,确认系统版本是什么
cat /etc/*release*// 2.确定CPU是什么类型, arm or x86
uname -a// 3.卸载旧版本,如果是新购买的云服务器是没有的,比如输入 docker 并没有这个命令,就不需要卸载
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest  \                                                    docker-latest-logrotate docker-logrotate docker-engine// 4.卸载历史版本
#卸载软件
sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
#删除目录
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd// 5.配置仓库
ll /etc/yum.repos.d/
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo
ll /etc/yum.repos.d/
#查看系统源
cat /etc/apt/sources.list
#查看Docker源
cat /etc/apt/sources.list.d/docker.list// 6. 安装最新版本
sudo yum install -y docker-ce// 7.启动 docker
#配置加载
sudo systemctl daemon-reload 
#启动服务
sudo systemctl start docker 
#开启启动
sudo systemctl enable docker
#查看服务状态
sudo systemctl status docker// 8.检查安装结果查看版本
docker version
docker info// 9. 执行 hello-world 可以看到 Hello from Docker,表面 docker 服务正常
sudo docker run hello-world

****实战经验***

与 Ubuntu安装 docker 的实战经验一样。

5.3、Windows 安装 Docker

****安装依赖****

确定开启虚拟化

输入 win+i ,然后输入启用或者关闭 windows 功能

选择 windows 子系统

重启电脑,完成系统设置
安装 WSL2
以管理员权限运行PowerShell
查看版本,如果不是2需要更新到2:wsl --status
PowerShell运行命令更新wsl到最新版本:wsl--update、
设置wsl默认版本:wsl--Set-default-version

通过微软应用商店安装Ubuntu22.04

启动:成功如下现象:

****安装Docker****

  1. 点击链接下载Docker: desktop.docker.com
  2. 下载好之后双击 Docker Desktop Installer.exe 开始安装
  3. 点击 Docker Desktop 桌面快捷方式运行 Dokcer
  4. 确认 Docker 安装成功, PowerShell 中输入 docker version 命令确认 Client 和 Server 是否启动

http://www.dtcms.com/a/524402.html

相关文章:

  • SpringBoot实战(三十九)集成 FreeMarker
  • 除自身以外数组的乘积(二)
  • 指针数组和指针数组区别
  • 怎么用云主机做网站天津市建设厅注册中心网站
  • flutter使用getx做一个todolist
  • 威海市住房和城乡建设局官方网站广东省公路建设有限公司网站
  • 5.深度学习:从Softmax到模型评估
  • 吴恩达深度学习课程一:神经网络和深度学习 第三周:浅层神经网络(二)
  • 在优豆云免费云服务器上搭建与配置Apache的实践笔记
  • 网站开发设计是前端吗伯维网站建设
  • 成都seo优化公司搜素引擎优化
  • Cesium中的倒立四棱锥:从几何结构到交互式3D可视化
  • 从传统架构到云原生,如何应对数据增长挑战?
  • Extreme Views 的3DGS!
  • 南京网站开发哪家好如何在自己做的网站中顶置内容
  • LeetCode 面试经典 150_链表_随机链表的复制(59_138_C++_中等)
  • WPS 365政务版亮相2025数博会,AI生成公文可用度达90%
  • 判断网站是否被k校园类网站模板
  • wordpress删除站点怎样给建设的网站提意见
  • Zabbix Agent 安装
  • RTX5060TI 安装C++版本的onnxruntime(GPU版本)
  • MCP(trae)+ IDA-提高干活效率
  • Spring Boot微服务健康检测:保障系统稳定性的关键实践
  • 利用Java API与HDFS进行交互
  • Linux 中修改 IP 地址为 静态 IP 地址
  • 一团网站建设个人网页设计作业
  • 做网站商城赔了8万卢松松网站源码
  • 界面控件Kendo UI for Angular 2025 Q3亮点 - 全新的AI编码助手
  • 鸿蒙HarmonyOS ArkUI 状态管理装饰器详解
  • 旅游景点网站建设防疫测温健康码核验一体机