【DevOps】CentOS8.2 安装 Docker(19.03.13)

安装环境


系统版本

通过 cat /etc/redhat-release 查看,系统版本为:

CentOS Linux release 8.2.2004 (Core)

内核版本

通过 cat /proc/version 查看,内核版本为:

Linux version 4.18.0-193.el8.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 8.3.1 20191121 (Red Hat 8.3.1-5) (GCC)) #1 SMP Fri May 8 10:59:10 UTC 2020

ps:uname -a 或 uname -r 可以直接查看内核版本号。

安装工具 DNF

从 centos7开始,DNF 成为了默认的软件包管理器,虽然 yum 仍然是可用的,但是 DNF 或许是以后的趋势,所以本文我们使用 DNF进行安装,DNF 的命令 大部分和 yum 一样。

顺便科普一下:使用 DNF 代替 yum 是为了解决 yum 性能差、内存占用过多、依赖解析速度变慢 等问题;

DNF 使用 libsolv 进行依赖解析,而 yum 由python 编写。


安装Docker


部署Kubernetes(k8s)时,为什么要关闭swap、selinux、防火墙?

不止部署k8s,许多公司在装机过程就就直接关闭了swap、selinux和防火墙

selinux,这个是用来加强安全性的一个组件,但非常容易出错且难以定位,一般上来装完系统就先给禁用了

iptables防火墙,会对所有网络流量进行过滤、转发,如果是内网机器一般都会直接关闭,省的影响网络性能,但k8s不能直接关了,k8s是需要用防火墙做ip转发和修改的,当然也看使用的网络模式,如果采用的网络模式不需要防火墙也是可以直接关闭的

swap,这个当内存不足时,linux会自动使用swap,将部分内存数据存放到磁盘中,这个这样会使性能下降,为了性能考虑推荐关掉

SWAP就不太一样了,SWAP是让你在明确的OOM和没有报错但是莫名其妙服务就不能用了之间二选一,对于集群化的服务(比如etcd)来说是挂掉一个实例和整个集群都出毛病之间二选一,一般正常人都知道该选哪个

准备工作

1、 DNF 换源
如果是一台新服务器,为了保证下载速度,我们首先将 DNF 换源为国内源,常用的有 阿里的、清华的,以阿里的为例。

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
dnf makecache
dnf repolist

2、修改 hostname

因为以后要做 k8s集群,所以最好在服务器什么都没装时,先改好 k8s集群的每个节点的名称。

hostnamectl set-hostname k8s-172

3、修改 hosts 文件

echo "192.168.10.202 k8s-172" >> /etc/hosts

# 或者

cat >> /etc/hosts << EOF
192.168.10.202    k8s-172
EOF

4、关闭交换分区(为k8s准备)

swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab

free -h

5、关闭 selinux

# 查看 selinux 状态
sestatus # 或者 sestatus -v 或者 getenforce 

# 临时设置为 Permissive (宽松模式)
setenforce 0

# 永久关闭selinux
sudo sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
reboot

安装 Docker

1、安装必要工具

dnf install -y dnf-utils device-mapper-persistent-data lvm2

2、添加 Docker 软件源

dnf config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3、更新 DNF 源

dnf makecache

4、 查看可以安装的 Docker 版本

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

5、安装 Docker-CE

dnf -y install docker-ce

如果是第一次安装 Docker,会报错:

Problem: package docker-ce-3:19.03.13-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed

解决办法:

dnf -y install wget
wget https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
dnf -y install containerd.io-1.2.6-3.3.el7.x86_64.rpm

检查是否安装成功:

docker version

配置 与启动 Docker

1、新建 daemon.json 文件,并配置,这里主要配置了4个地方:

  • registry-mirrors :镜像改为阿里云的镜像仓库,(需要到阿里云网站申请);
  • insecure-registries :配置私有镜像仓库时,配置镜像不使用 https 传输,IP 是 私有镜像仓库的IP;
  • exec-opts :为了与 k8s 的默认驱动保持一致;
  • log :分别配置了日志的文件格式、每个容器的最大日志文件数 和 每个日志文件的最大尺寸;
mkdir -p /etc/docker
vim daemon.json

{
	"registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"],
	"insecure-registries": ["120.xxx.xx.174:5000"],
	"exec-opts": ["native.cgroupdriver=systemd"],
	"log-driver": "json-file",
	"log-opts": {
		"max-size": "10m",
		"max-file": "1"
	}

}

2、使开机自启动,并启动 Docker

systemctl enable docker
systemctl start docker

3、查看配置是否生效

docker info
systemctl status docker -l

4、如果启动 Docker 后 修改了配置文件,则需要 使配置生效并重启 Docker

systemctl daemon-reload
systemctl restart docker

参考资料


1、通过 kubeadm 安装 k8s
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

2、k8s 官网的 Docker 安装方法

https://kubernetes.io/zh/docs/setup/production-environment/container-runtimes/
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值