文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247483838&idx=1&sn=5a13aed5497b6c7144a0ab464f164612&chksm=e9fdd44ade8a5d5c9951d640069e556ef30090b41c9f251a1bfa0fd2964617f72176af957828&scene=178&cur_album_id=1341273083637989377#rd

Docker是kubernetes最常用于运行容器的底层引擎,除了Docker之外还有Podman等;

安装Docker引擎

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo &&yum makecache && yum -y install docker-ce

配置镜像加速

#!/bin/bash

cd /data/k8s/work
source /data/k8s/bin/env.sh # 创建加速配置文件
cat > daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://hjvrgh7a.mirror.aliyuncs.com"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
}
}
# 添加私有镜像仓库,默认是使用https
# "insecure-registries": ["registry.k8s.vip"],
EOF # 分发
for node_ip in ${NODE_IPS[@]}
do
echo ">>> ${node_ip}"
ssh root@${node_ip} "mkdir -p /etc/docker/"
scp daemon.json root@${node_ip}:/etc/docker/
done

加速配置选项说明

创建启动文件

#!/bin/bash

cd /data/k8s/work
source /data/k8s/bin/env.sh cp /usr/lib/systemd/system/docker.service /data/k8s/work/ sed -i '/ExecStart/s/\(.*\)/#\1/' /data/k8s/work/docker.service
sed -i '/ExecReload/a ExecStart=/usr/bin/dockerd $DOCKER_NETWORK_OPTIONS -H fd:// --containerd=/run/containerd/containerd.sock' /data/k8s/work/docker.service
sed -i '/ExecReload/a EnvironmentFile=-/run/flannel/docker' /data/k8s/work/docker.service for node_ip in ${NODE_IPS[@]}
do
echo ">>> ${node_ip}"
scp /data/k8s/work/docker.service root@${node_ip}:/usr/lib/systemd/system/
done

启动docker runtime引擎

#!/bin/bash

cd /data/k8s/work
source /data/k8s/bin/env.sh # 启动
for node_ip in ${NODE_IPS[@]}
do
echo ">>> ${node_ip}"
ssh root@${node_ip} "systemctl daemon-reload && systemctl enable docker && systemctl restart docker"
done # 检查
for node_ip in ${NODE_IPS[@]}
do
echo ">>> ${node_ip}"
ssh root@${node_ip} "systemctl status docker"
done 检查结果:
>>> 192.168.16.104
Active: active (running) since Sun 2019-12-29 18:05:58 CST; 1 months 1 days ago
>>> 192.168.16.105
Active: active (running) since Sun 2019-12-29 17:42:35 CST; 1 months 1 days ago
>>> 192.168.16.106
Active: active (running) since Sun 2019-12-29 17:27:52 CST; 1 months 1 days ago
>>> 192.168.16.107
Active: active (running) since Sun 2019-12-29 17:49:00 CST; 1 months 1 days ago

flanneld 和 docker 之间网络

#!/bin/bash

cd /data/k8s/work
source /data/k8s/bin/env.sh for node_ip in ${NODE_IPS[@]}
do
echo ">>> ${node_ip}"
ssh root@${node_ip} "/usr/sbin/ip addr show flannel.1 && /usr/sbin/ip addr show docker0"
echo "\n"
done 检查结果:
>>> 192.168.16.104
3: flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN
link/ether aa:ea:b2:e1:88:a5 brd ff:ff:ff:ff:ff:ff
inet 172.19.120.0/32 scope global flannel.1
valid_lft forever preferred_lft forever
4: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP
link/ether 02:42:0d:b7:5a:62 brd ff:ff:ff:ff:ff:ff
inet 172.19.120.1/21 brd 172.19.127.255 scope global docker0
valid_lft forever preferred_lft forever >>> 192.168.16.105
3: flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN
link/ether 9a:9d:f2:df:a0:5b brd ff:ff:ff:ff:ff:ff
inet 172.19.184.0/32 scope global flannel.1
valid_lft forever preferred_lft forever
4: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP
link/ether 02:42:c3:44:35:9c brd ff:ff:ff:ff:ff:ff
inet 172.19.184.1/21 brd 172.19.191.255 scope global docker0
valid_lft forever preferred_lft forever >>> 192.168.16.106
3: flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN
link/ether ba:f5:d6:06:fb:de brd ff:ff:ff:ff:ff:ff
inet 172.19.72.0/32 scope global flannel.1
valid_lft forever preferred_lft forever
4: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP
link/ether 02:42:e4:56:c1:04 brd ff:ff:ff:ff:ff:ff
inet 172.19.72.1/21 brd 172.19.79.255 scope global docker0
valid_lft forever preferred_lft forever >>> 192.168.16.107
3: flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN
link/ether 96:d5:25:87:b0:11 brd ff:ff:ff:ff:ff:ff
inet 172.19.56.0/32 scope global flannel.1
valid_lft forever preferred_lft forever
4: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP
link/ether 02:42:50:85:6e:d9 brd ff:ff:ff:ff:ff:ff
inet 172.19.56.1/21 brd 172.19.63.255 scope global docker0
valid_lft forever preferred_lft forever

总结

Docker引擎安装相对简单,但需要与网络插件flannel结合起来使用,只需要简单的配置下启动参数EnvironmentFile即可。

12.第十一篇 安装docker引擎的更多相关文章

  1. 深入剖析Windows专业版安装Docker引擎和Windows家庭版Docker引擎安装的区别

    原创声明:作者:Arnold.zhao  博客园地址:https://www.cnblogs.com/zh94 公司使用的电脑是Windows专业版,所以配置本机的Docker时会方便许多,后续由于需 ...

  2. LCOW —— 单一Docker引擎下可同时运行Linux和Windows容器啦!

    https://blog.csdn.net/m2l0zgssvc7r69efdtj/article/details/79251059 就在上周,Docker官方的master分支上新增了LCOW(Li ...

  3. CentOS7和Ubuntu下安装Docker & Docker-Compose

    本篇介绍如何在CentOS 7.6和Ubuntu 16.04下安装Docker & Docker-Compose. CentOS篇 安装Docker # cat /etc/redhat-rel ...

  4. 在Ubuntu上安装Docker Engine

    在Ubuntu上安装Docker Engine 这篇文章是介绍如何在在Ubuntu上安装Docker Engine,就是Google翻译官方文档的版本,英语好的直接官方原文.原文 要在Ubuntu上开 ...

  5. Docker从入门到精通(二)——安装Docker

    通过上面文章,我们大概知道了什么是Docker,但那都是文字功夫,具体想要理解,还得实操,于是这篇文章带着大家来手动安装Docker. 1.官方教程 https://docs.docker.com/e ...

  6. centos 在线安装 docker

    镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 在新主机上首次安装Docker Engine之前,需要设置Docker存储库.之后,您可以从存储库安装和更新Docker. 设置存储库 安装yu ...

  7. CentOS 7 安装 Docker

    CentOS 7 安装 Docker 这里介绍 ContOS 7 的安装 docker V1.2+,包括阿里云加速 docker 镜像下载的设置,这对提升使用 docker 体验至关重要.其他系统安装 ...

  8. 【转载】Ubuntu 系列安装 Docker

    系统要求 Docker 支持以下版本的Ubuntu操作系统: Ubuntu Xenial 16.04 (LTS) Ubuntu Wily 15.10 Ubuntu Trusty 14.04 (LTS) ...

  9. centos7 安装 docker

    一.概念 1.Docker引擎 (docker engine) 也称docker daemon,也称为docker服务,只要启动服务,就可以通过docker client发送相关docker命名,与d ...

随机推荐

  1. 【python】M3U8下载器脚本

    [python]M3U8下载器脚本 脚本目标: 1. 输入M3U8文件的链接,得到视频 2.使用异步操作,这样可以快很多,不加锁,因为懒得写,而且影响不大 已知条件: 1.m3u8文件其实就是一个记录 ...

  2. while循环&&连接的两个条件

    做题的时候出现这种情况,把while中用&&连接的两个条件交换一下就会报错. 原因是 while 中是先检查第一个条件,如果第一个就为false就不看下一个了.如果第一个是true再检 ...

  3. Java 中的对象池实现

    点赞再看,动力无限.Hello world : ) 微信搜「程序猿阿朗 」. 本文 Github.com/niumoo/JavaNotes 和 未读代码博客 已经收录,有很多知识点和系列文章. 最近在 ...

  4. Python语言之面向对象

    Python语言之面向对象 前言 面向对象 -- Object Oriented 简写:OO 面向对象设计 -- Object Oriented Design 简写:OOD 面向对象编程 -- Obj ...

  5. Mybatis-Generator 自定义注释

    继承DefaultCommentGenerator 或者CommentGenerator package com.zhianchen.mysqlremark.toword.config;import ...

  6. 09 MySQL_SQL日期函数和聚合函数

    日期相关的函数 seclect 'helloworld'; 1. 获取当前时间 now(); select now(); 2.获取当前的日期 curdate(); select curdate(); ...

  7. ooday07 Java_接口

    笔记: 接口: 是一种引用数据类型 由interface定义 只能包含常量和抽象方法------默认权限是public 接口不能被实例化 接口是需要被实现/继承,实现/派生类:必须重写所有抽象方法 一 ...

  8. Winsock Client Code

    以下代码来自MSDN:https://msdn.microsoft.com/en-us/library/windows/desktop/ms737591(v=vs.85).aspx #define W ...

  9. Solution -「CF113D」Museum

    Upd 2021.10.21 更改了状态定义. 记 \(S(u)\) 表示 \(u\) 结点的相邻结点的集合. 又记 \(p(u)\) 表示走到了 \(u\) 且下一步继续留在 \(u\) 结点的概率 ...

  10. 【每天学一点-02】创建Node.js的第一个应用

    1.引入require模块,使用createServer()创建服务器 [server.js]文件 var http = require('http'); http.createServer(func ...