写点什么

云原生(二) | Docker 篇之轻松学会原理|架构|安装|加速

作者:Lansonli
  • 2022 年 7 月 12 日
  • 本文字数:1887 字

    阅读完需:约 6 分钟

云原生(二) | Docker篇之轻松学会原理|架构|安装|加速

​前言

一文精讲一个知识点,多了你记不住,一句废话都没有

经典语录:人情绪的尽头不是脏话不是发泄,人情绪的尽头是沉默


一、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 隔离原理

  • namespace 6 项隔离 (资源隔离)


  • cgroups 资源限制 (资源限制)

cgroup 提供的主要功能如下:

  • 资源限制:限制任务使用的资源总额,并在超过这个 配额 时发出提示

  • 优先级分配:分配 CPU 时间片数量及磁盘 IO 带宽大小、控制任务运行的优先级

  • 资源统计:统计系统资源使用量,如 CPU 使用时长、内存用量等

  • 任务控制:对任务执行挂起、恢复等操作

cgroup 资源控制系统,每种子系统独立地控制一种资源。功能如下


三、Docker 安装

以下以 centos 为例;

更多其他安装方式,详细参照文档: https://docs.docker.com/engine/install/centos/

1、移除旧版本

sudo yum remove docker*
复制代码


2、设置 docker yum 源 

sudo yum install -y yum-utils
复制代码



使用官方源地址(比较慢)

sudo yum-config-manager \    --add-repo \    https://download.docker.com/linux/centos/docker-ce.repo
复制代码


可以选择国内的一些源地址:

阿里云

sudo yum-config-manager \    --add-repo \    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
复制代码


清华大学源

sudo yum-config-manager \    --add-repo \    https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
复制代码


3、安装最新 docker engine

sudo yum install docker-ce docker-ce-cli containerd.io
复制代码



4、安装指定版本 docker engine

1、在线安装

#找到所有可用docker版本列表 yum list docker-ce --showduplicates | sort -r# 安装指定版本,用上面的版本号替换<VERSION_STRING> sudo yum install docker-ce-<VERSION_STRING>.x86_64 docker-ce-cli- <VERSION_STRING>.x86_64 containerd.io #例如: #yum install docker-ce-3:20.10.5-3.el7.x86_64 docker-ce-cli-3:20.10.5- 3.el7.x86_64 containerd.io #注意加上 .x86_64 大版本号
复制代码


2、离线安装

https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

 rpm -ivh xxx.rpm

可以下载 tar

解压启动即可

https://docs.docker.com/engine/install/binaries/#install-daemon-and-client-binaries-on-linux


5、启动服务

systemctl start docker systemctl enable docker
复制代码


6、镜像加速

sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{     "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"] }EOF sudo systemctl daemon-reload sudo systemctl restart docker
复制代码


以后 docker 下载直接从阿里云拉取相关镜像

/etc/docker/daemon.json 是 Docker 的核心配置文件。


7、 可视化界面-Portainer

1、什么是 Portainer

https://documentation.portainer.io/

  • Portainer 社区版 2.0 拥有超过 50 万的普通用户,是功能强大的开源工具集,可让您轻松地在 Docker, 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
复制代码



界面显示



发布于: 刚刚阅读数: 6
用户头像

Lansonli

关注

微信公众号:三帮大数据 2022.07.12 加入

CSDN大数据领域博客专家,华为云享专家、阿里云专家博主、腾云先锋(TDP)核心成员、51CTO专家博主,全网六万多粉丝,知名互联网公司大数据高级开发工程师

评论

发布
暂无评论
云原生(二) | Docker篇之轻松学会原理|架构|安装|加速_Docker_Lansonli_InfoQ写作社区