在所有的master和node以及Docker私有仓库服务器上安装docker,这里使用Docker作为k8s集群的容器引擎,也可以换成别的,例如containerd等。
这里安装二进制Docker-ce社区版本。
3.1 卸载旧版本
如果没有安装就不需要执行
yum remove docker docker-common docker-selinux docker-engine
3.2 下载Docker-ce社区版本
https://download.docker.com/linux/static/stable/x86_64/
选择docker-19.03.9.tgz
cd /usr/local/src
wget https://download.docker.com/linux/static/stable/x86_64/docker-19.03.9.tgz
3.3 安装Docker-ce社区版本
#解压
cd /usr/local/src
tar -zxvf docker-19.03.9.tgz
#将解压出来的docker文件移动到/usr/bin/目录下
mv /usr/local/src/docker/* /usr/bin/
3.4 设置Docker开机启动
#添加docker用户组
groupadd docker
#在/usr/lib/systemd/system/目录创建编辑docker.service文件
vi /usr/lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
#BindsTo=containerd.service
After=network-online.target firewalld.service containerd.service
Wants=network-online.target
Requires=docker.socket
[Service]
Type=notify
#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process
OOMScoreAdjust=-1000
[Install]
WantedBy=multi-user.target
:wq! #保存退出
#添加执行权限
chmod +x /usr/lib/systemd/system/docker.service
vi /usr/lib/systemd/system/docker.socket #创建编辑文件
[Unit]
Description=Docker Socket for the API
PartOf=docker.service
[Socket]
ListenStream=/var/run/docker.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker
[Install]
WantedBy=sockets.target
:wq! #保存退出
systemctl daemon-reload #重新加载配置,修改docker.service文件后要重新加载
systemctl start docker #启动docker
systemctl enable docker.service #添加开机启动
systemctl status docker #查看docker状态
docker version #查看docker版本
3.5 配置Docker镜像加速
由于Docker Hub的服务器在国外,下载docker镜像比较慢,我们可以配置国内的镜像地址,这样下载docker镜像速度就会很快。
国内主要的镜像加速器有:
163:https://hub-mirror.c.163.com
百度:https://mirror.baidubce.com/
阿里云:https://<自己的id>.mirror.aliyuncs.com
#使用阿里云账号登录https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登录成功后,左侧菜单-容器镜像服务-镜像工具-镜像加速器-加速器
#CentOS7.x已使用systemd进行服务管理,对于使用systemd的系统,在/etc/docker/daemon.json文件中进行添加
mkdir -p /etc/docker #创建目录,执行以下操作
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://t1fyrekt.mirror.aliyuncs.com"]
}
EOF
#查看
[root@k8s-master1 src]# cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://t1fyrekt.mirror.aliyuncs.com"]
}
vi /etc/docker/daemon.json #编辑配置文件,可以添加多个docker镜像地址
{
"registry-mirrors": ["https://t1fyrekt.mirror.aliyuncs.com","https://hub-mirror.c.163.com","https://mirror.baidubce.com"]
}
:wq! #保存退出
systemctl daemon-reload
systemctl restart docker #重启docker
docker info #检查docker镜像加速器是否配置成功
Registry Mirrors:
https://t1fyrekt.mirror.aliyuncs.com/
https://hub-mirror.c.163.com/
https://mirror.baidubce.com/
Live Restore Enabled: false
Product License: Community Engine
#可以看到Registry Mirrors:下面有我们设置的镜像地址,说明配置成功
3.6 测试Docker是否可用
docker pull hello-world #下载一个镜像实例
[root@k8s-master1 src]# docker pull hello-world
Using default tag: latest
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:cc15c5b292d8525effc0f89cb299f1804f3a725c8d05e158653a563f15e4f685
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest
docker run hello-world #运行一个镜像实例
docker images hello-world #查看该镜像的信息
[root@k8s-master1 src]# docker images hello-world
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 2 months ago 13.3kB
3.7 安装Docker-Compose
Docker-Compose是docker提供的一个命令行工具,用来定义和运行由多个容器组成的应用。使用Docker-Compose,我们可以通过yaml文件定义应用程序的各个服务,并由单个命令完成应用的创建和启动,Docker-Compose依靠Docker进行工作,必须确保已经安装了docker才能安装Docker-Compose
#把docker-compose安装在/usr/local/bin/目录下
#执行一下命令
curl -SL https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
#添加执行权限
chmod +x /usr/local/bin/docker-compose
#查看版本
docker-compose --version
[root@k8s-master1 src]# docker-compose --version
Docker Compose version v2.2.2
至此,k8s集群搭建之安装Docker完成。