吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1391|回复: 2
收起左侧

[其他转载] 容器部署实验文档

  [复制链接]
kuruite 发表于 2021-1-15 14:35
这个文档让你知道你每一步是在干什么,执行的命令是什么含义。
知其然知其所以然

Docker容器安装

容器部署

<!---------------------------->

背景了解

Duration: 5

容器是一个跨时代的开源项目,降低了云计算资源供应的成本,同时让应用的部署、测试和分发都变得前所未有的高效和轻松。本实验结合了实际生产实践使用,详细梳理了Docker如何在不同环境下进行安装和部署,以及在部署后如何对Docker的常用功能进行相关设置以便更好地使用。

Docker与Podman的快速区别

Docker

Docker是一个开源的应用容器引擎,属于 Linux 容器的一种封装,Docker 提供简单的容器使用接口,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到Linux 机器上,但Docker也有 两个主要缺点:

  • Docker 需要在你的系统上运行一个守护进程;
  • Docker 是以 root 身份在你的系统上运行该守护程序。
Podman

Podman也是一个开源的容器管理工具,可以在大多数Linux平台上使用,它是一种无守护程序的容器引擎,亦用于在Linux系统上开发,管理和运行任何符合Open Container Initiative(OCI)标准的容器和容器镜像,提供了一个与Docker兼容的命令行前端。
Podman控制下的容器既可以由root用户运行,也可以由非特权用户运行。使用Podman后可以解决由于docker守护程序导致的启动和安全问题。

Podman 和docker主要不同之处

Docker需要在我们的系统上运行一个守护进程(docker daemon),Podman而不需要.
启动容器的方式不同:

  • docker cli通过API跟 Docker Engine(引擎)交互告诉它我想创建一个 container,然后docker Engine才会调用OCI container runtime(runc)来启动一个container。这代表contain- er的process(进程)不会是Docker CLI的child process(子进程),而是Docker Engine的child process。
  • Podman是直接给OCI containner runtime(runc)进行交互来创建container的,所以container process 直接是podman的child process。
  • docker需要使用root用户来创建容器,但是podman不需要

实验准备

Duration: 0

  • CentOS 7及以上版本的操作系统
  • 配置国内加速docker-ce稳定仓库镜像源
  • Linux内核版本不低于3.10(CentOS 7 满足最低内核的要求)

Negative
: 建议升级内核到4.4以上,因为CentOS 7自带的3.10内核存在一些bug,会导致Docker、Kubernetes运行不稳定,特别是高版本的Docker、Kubernetes(参考 https://github.com/kubernetes/kubernetes/issues/61937)。

升级内核

Duration: 10

通过Centos与内核版本对应关系可以找到系统版本与内核版本的对应关系

安装依赖

查看当前内核版本

uname -sr

载入公钥

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

安装elrepo

yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

载入elrepo-kernel元数据

yum --disablerepo=\* --enablerepo=elrepo-kernel repolist

查看kernel版本

yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

Positive
: kernel-ml:ml是英文【mainline stable】的缩写,elrepo-kernel中罗列出来的是最新的稳定主线版本。<br/>
kernel-lt:lt是英文【long term support】的缩写,elrepo-kernel中罗列出来的长期支持版本。

安装最新版本的kernel

yum --enablerepo=elrepo-kernel install kernel-ml kernel-ml-devel –y

查看当前可用内核版本:

awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

更改内核默认启动顺序,选择最新内核版本,0代表查看当前可用内核版本列表的左侧索引号

grub2-set-default 0

生成grub文件

grub2-mkconfig -o /boot/grub2/grub.cfg

重启

reboot

删除旧版本工具包

yum remove kernel-tools-libs.x86_64 kernel-tools.x86_64

安装新版本工具包

yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml-tools.x86_64

验证

uname -sr

Docker安装

Duration: 10

我们这次采用Docker。安装Podman详见实验中关于Podman的文档.

安装必要的软件包

sudo yum install -y yum-utils

添加Docker国内镜像下载仓库

sudo yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

查看仓库中详细的Dcoker版本

yum list docker-ce --showduplicates | sort -r

安装最新版本Docker

sudo yum install docker-ce docker-ce-cli containerd.io

安装指定版本

kubernetes有对应版本要求,根据要求选择对应的版本号即可。<br/>
详见:https://github.com/kubernetes/kubernetes/tree/master/CHANGELOG

sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

示例:

sudo yum install docker-ce-19.03.9-3.el7 docker-ce-cli-19.03.9-3.el7 containerd.io

启动Dcoker

sudo systemctl start docker
sudo systemctl enable docker

验证

docker version

配置调优

Duration: 10

配置国内镜像加速器

因为互联网的原因,从国外下载镜像会比较慢,所以需要单独配置下国内的镜像加速器。

tee /etc/docker/daemon.json  << EOF
{
"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
EOF

加载重启Docker

sudo systemctl daemon-reload
sudo systemctl restart docker

验证

docker info

参考镜像加速器地址:

  1. 中国科技大学:https://docker.mirrors.ustc.edu.cn
  2. 腾讯:https://mirror.ccs.tencentyun.com
  3. 网易:http://hub-mirror.c.163.com
  4. 七牛云加速器:https://reg-mirror.qiniu.com
  5. 阿里云-申请步骤https://&lt;你的ID&gt;.mirror.aliyuncs.com

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

散与聚 发表于 2021-1-15 15:19
好文章,顶一个
change 发表于 2021-1-15 16:14
本帖最后由 change 于 2021-1-15 16:28 编辑

写得很详细了,一般来说,CentOS7 只要下载一个阿里去的repo,再用yum安装就可以了。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 21:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表