二进制安装k8s集群(3)-安装docker

上一篇文章里我们主要介绍制作ssl证书,这里我们主要介绍安装docker。这里我们采用yum的方式安装docker,安装完成之后开启tcp通讯并且开启双向ssl验证。默认docker client和docker server是通过unix sock通讯的(在同一台机器),在实际环境中要根据自己需要来决定是否开启tcp通讯。当开启tcp通讯之后也要根据自己实际需要来看是否要开启ssl,是开启单向ssl还是双向ssl。

安装yum-utils

yum list|grep yum-util
yum install yum-utils

添加docker yum repo

yum install device-mapper-persistent-data lvm2
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

查看docker yum repo

ll /etc/yum.repo.d

搜索并安装docker

yum list|grep docker-ce
yum install docker-ce.x86_64

检查docker rmp包

rpm -qa|grep docker

启动docker并检查服务状态

systemctl start docker
systemctl status docker

设置docker自动启动

systemctl enable docker

测试docker命令

docker --version

修改docker server配置文件:

这里我们在配置文件里加入docker image repo镜像配置,可以使docker访问repo是有加速效果,在国内可以自己申请阿里云的镜像加速地址。另一个配置是开启docker的tcp访问,在这里我们监听2375端口

touch /etc/docker/daemon.json


cat  > /etc/docker/daemon.json << EOF
{ 
  "registry-mirrors": [
      "https://8qw8c5j0.mirror.aliyuncs.com",
      "https://registry.cn-hangzhou.aliyuncs.com"
   ],
  "hosts":[
     "unix:///var/run/docker.sock",
     "tcp://0.0.0.0:2375"
   ]
}
EOF

修改docker systemd unit文件:

用yum方式安装docker本质上也是创建了一个linux systemd系统服务,那么就会有对应的systemd unit文件。当我们修改完上一个步骤的配置之后用

systemctl restart docker和systemctl status docker来重启动docker之后会报错,就是因为在docker的systemd的unit文件里配置了用unix sock方式,所以这里我们要去掉这个配置,让docker 从/etc/docker/daemon.json读取配置,然后在从新load systemd(systemctl daemon-reload),并且restart docker服务。

systemctl restart docker
systemctl status docker


vi /usr/lib/systemd/system/docker.service
cat /usr/lib/systemd/system/docker.service
systemctl daemon-reload


systemctl start docker
systemctl status docker

检查docker tcp端口监听

netstat -anoltp|grep docker

打开docker端口2375访问防火墙

firewall-cmd --permanent --zone=public --add-port=2375/tcp
firewall-cmd --reload
firewall-cmd --list-all

配置docker服务端开启ssl,添加client auth双向ssl:

这里需要用到docker server端的ssl证书,请提前制作好,可以参考上一篇文章。

cp /opt/sw/cert/ca.crt  /etc/docker/
cp /opt/sw/cert/docker-server.crt  /etc/docker/
cp /opt/sw/docker-server.key /etc/docker/


cat  > /etc/docker/daemon.json << EOF
{ 
  "registry-mirrors": [
      "https://8qw8c5j0.mirror.aliyuncs.com",
      "https://registry.cn-hangzhou.aliyuncs.com"
   ],
  "hosts":[
     "unix:///var/run/docker.sock",
     "tcp://0.0.0.0:2375"
   ],
   "tls": true,
   "tlscacert": "/etc/docker/ca.crt",
   "tlscert": "/etc/docker/docker-server.crt",
   "tlskey": "/etc/docker/docker-server.key",
   "tlsverify": true
}
EOF

配置docker client端:

这里我们docker server端用vm 172.20.11.43,client端用172.20.11.41。配置docker client的ssl cert,ssl key,ca cert在默认的位置(~/.docker),请提前制作好client证书,可以参考上一篇文章。当然在默认位置配置了之后,在命令里就可以省略这些参数了,如果不在默认位置配置,就必须在命令里加上相应参数才可以完成双向ssl访问docker。

mkdir -p /root/.docker
cp /etc/docker/ca.crt /root/.docker/ca.pem
cp /opt/sw/cert/docker-client.crt /root/.docker/cert.pem
cp /opt/sw/cert/docker-client.key /root/.docker/key.pem
ll /root/.docker/

双向tls访问docker server

docker -H 172.20.11.43:2375 --tls  --tlsverify  ps

搜索并pull docker images

docker search nginx
docker search busybox
docker pull nginx:latest
docker pull busybox:latest
docker images

启动docker container

docker run -itd -p 8080:80 --restart always nginx:latest
docker run -itd --restart always busybox:latest
docker ps -a

在docker container里执行命令

docker exec -it 125669393e5a /bin/sh
ip addr

目前先写到这里,在下一篇文章里我们开始介绍安装etcd集群。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值