前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >二进制安装k8s集群(3)-安装docker

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

作者头像
TA码字
发布2020-04-02 18:21:11
7440
发布2020-04-02 18:21:11
举报
文章被收录于专栏:TA码字

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

安装yum-utils

代码语言:javascript
复制
yum list|grep yum-util
yum install yum-utils

添加docker yum repo

代码语言:javascript
复制
yum install device-mapper-persistent-data lvm2
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

查看docker yum repo

代码语言:javascript
复制
ll /etc/yum.repo.d

搜索并安装docker

代码语言:javascript
复制
yum list|grep docker-ce
yum install docker-ce.x86_64

检查docker rmp包

代码语言:javascript
复制
rpm -qa|grep docker

启动docker并检查服务状态

代码语言:javascript
复制
systemctl start docker
systemctl status docker

设置docker自动启动

代码语言:javascript
复制
systemctl enable docker

测试docker命令

代码语言:javascript
复制
docker --version

修改docker server配置文件:

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

代码语言:javascript
复制
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服务。

代码语言:javascript
复制
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端口监听

代码语言:javascript
复制
netstat -anoltp|grep docker

打开docker端口2375访问防火墙

代码语言:javascript
复制
firewall-cmd --permanent --zone=public --add-port=2375/tcp
firewall-cmd --reload
firewall-cmd --list-all

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

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

代码语言:javascript
复制
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。

代码语言:javascript
复制
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

代码语言:javascript
复制
docker -H 172.20.11.43:2375 --tls  --tlsverify  ps

搜索并pull docker images

代码语言:javascript
复制
docker search nginx
docker search busybox
docker pull nginx:latest
docker pull busybox:latest
docker images

启动docker container

代码语言:javascript
复制
docker run -itd -p 8080:80 --restart always nginx:latest
docker run -itd --restart always busybox:latest
docker ps -a

在docker container里执行命令

代码语言:javascript
复制
docker exec -it 125669393e5a /bin/sh
ip addr

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 TA码字 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档