linux怎么查看本机内存大小
256
2022-10-20
【云原生 | Docker篇】轻松学会原理|架构|安装|加速(一)
文章目录
前言
一、Docker架构
二、Docker隔离原理
三、Docker安装
1、移除旧版本
2、设置docker yum源
3、安装最新docker engine
4、安装指定版本docker engine
1、在线安装
2、离线安装
5、启动服务
6、镜像加速
7、 可视化界面-Portainer
1、什么是Portainer
2、安装
前言
一文精讲一个知识点,多了你记不住,一句废话都没有
经典语录:人情绪的尽头不是脏话不是发泄,人情绪的尽头是沉默
一、Docker架构
Client:客户端;操作docker服务器的客户端(命令行或者界面)Docker_Host:Docker主机;安装Docker服务的主机Docker_Daemon:后台进程;运行在Docker服务器的后台进程Containers:容器;在Docker服务器中的容器(一个容器一般是一个应用实例,容器间互相隔离)K8S:CRI(Container Runtime Interface)Images:镜像、映像、程序包;Image是只读模板,其中包含创建Docker容器的说明。容器是由Image运行而来,Image固定不变。Registries:仓库;存储Docker Image的地方。官方远程仓库地址:https://hub.docker.com/search
Docker 用 Go 编程语言编写,并利用 Linux 内核的多种功能来交付其功能。 Docker 使用一种称为名称空间的技术来提供容器的隔离工作区。 运行容器时,Docker 会为该容器创建一组名称空间。 这些名称空间提供了一层隔离。 容器的每个方面都在单独的名称空间中运行,并且对其的访问仅限于该名称空间。
Docker | 面向对象 |
镜像(Image) | 类 |
容器(Container) | 对象(实例) |
容器与虚拟机
二、Docker隔离原理
namespace 6项隔离 (资源隔离)
namespace | 系统调用参数 | 隔离内容 |
UTS | CLONE_NEWUTS | 主机和域名 |
IPC | CLONE_NEWIPC | 信号量、消息队列和共享内存 |
PID | CLONE_NEWPID | 进程编号 |
Network | CLONE_NEWNET | 网络设备、网络栈、端口等 |
Mount | CLONE_NEWNS | 挂载点(文件系统) |
User | CLONE_NEWUSER | 用户和用户组 |
cgroups资源限制 (资源限制)
cgroup提供的主要功能如下:
资源限制:限制任务使用的资源总额,并在超过这个 配额 时发出提示优先级分配:分配CPU时间片数量及磁盘IO带宽大小、控制任务运行的优先级资源统计:统计系统资源使用量,如CPU使用时长、内存用量等任务控制:对任务执行挂起、恢复等操作
cgroup 资源控制系统,每种子系统独立地控制一种资源。功能如下
子系统 | 功能 |
cpu | 使用调度程序控制任务对CPU的使用。 |
cpuacct(CPUAccounting) | 自动生成cgroup中任务对CPU资源使用情况的报告。 |
cpuset | 为cgroup中的任务分配独立的CPU(多处理器系统时)和内存. |
devices | 开启或关闭cgroup中任务对设备的访问 |
freezer | 挂起或恢复cgroup中的任务 |
memory | 设定cgroup中任务对内存使用量的限定,并生成这些任务对内存资源使用情况的报告 |
perf_event(LinuxCPU性能探测器) | 使cgroup中的任务可以进行统一的性能测试 |
net_cls(Docker未使用) | 通过等级识别符标记网络数据包,从而允许Linux流量监控程序(TrafficController)识别从具体cgroup中生成的数据包 |
三、Docker安装
以下以 centos 为例; 更多其他安装方式,详细参照文档: yum remove docker*
2、设置docker yum源
sudo yum install -y yum-utils
使用官方源地址(比较慢)
sudo yum-config-manager \ --add-repo \ yum-config-manager \ --add-repo \ yum-config-manager \ --add-repo \ engine
sudo yum install docker-ce docker-ce-cli containerd.io
4、安装指定版本docker engine
1、在线安装
#找到所有可用docker版本列表 yum list docker-ce --showduplicates | sort -r# 安装指定版本,用上面的版本号替换
2、离线安装
-ivh xxx.rpm 可以下载 tar 解压启动即可
start docker systemctl enable docker
6、镜像加速
sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["}EOF sudo systemctl daemon-reload sudo systemctl restart docker
以后 docker 下载直接从阿里云拉取相关镜像
/etc/docker/daemon.json 是 Docker 的核心配置文件。
7、 可视化界面-Portainer
1、什么是Portainer
Swarm,Kubernetes和Azure ACI中构建和管理容器。Portainer的工作原理是在易于使用的GUI后面隐藏使管理容器变得困难的复杂性。通过消除用户使用CLI,编写YAML或理解清单的需求,Portainer使部署应用程序和解决问题变得如此简单,任何人都可以做到。Portainer开发团队在这里为您的Docker之旅提供帮助。
2、安装
# 服务端部署 docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce# 访问 9000 端口即可 #agent端部署docker run -d -p 9001:9001 --name portainer_agent --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/volumes:/var/lib/docker/volumes portainer/agent
界面显示
欢迎点赞 收藏 留言 如有错误敬请指正!作者:Lansonli 大数据系列文章会每天更新,停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~