docker 安装

准备

CentOS7.x系统自带的3.10.x内核存在一些Bug,Docker运行不稳定,建议升级内核

  • 下载内核源
[root@master ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
获取http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
警告:/var/tmp/rpm-tmp.ABHzQf: 头V4 DSA/SHA1 Signature, 密钥 ID baadae52: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:elrepo-release-7.0-3.el7.elrepo  ################################# [100%]
  • 安装最新版本内核
[root@master ~]# yum --enablerepo=elrepo-kernel install -y kernel-lt
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.sjtu.edu.cn
 * elrepo: mirrors.tuna.tsinghua.edu.cn
 * elrepo-kernel: mirrors.tuna.tsinghua.edu.cn
 * extras: ftp.sjtu.edu.cn
 * updates: ftp.sjtu.edu.cn
elrepo                                                                                                                                                                                                                    | 3.0 kB  00:00:00     
elrepo-kernel                                                                                                                                                                                                             | 3.0 kB  00:00:00     
(1/2): elrepo/primary_db                                                                                                                                                                                                  | 337 kB  00:00:00     
(2/2): elrepo-kernel/primary_db                                                                                                                                                                                           | 2.0 MB  00:00:12     
正在解决依赖关系
--> 正在检查事务
---> 软件包 kernel-lt.x86_64.0.5.4.95-1.el7.elrepo 将被 安装
--> 解决依赖关系完成

依赖关系解决

=================================================================================================================================================================================================================================================
 Package                                                架构                                                版本                                                                源                                                          大小
=================================================================================================================================================================================================================================================
正在安装:
 kernel-lt                                              x86_64                                              5.4.95-1.el7.elrepo                                                 elrepo-kernel                                               50 M

事务概要
=================================================================================================================================================================================================================================================
安装  1 软件包

总下载量:50 M
安装大小:227 M
Downloading packages:
警告:/var/cache/yum/x86_64/7/elrepo-kernel/packages/kernel-lt-5.4.95-1.el7.elrepo.x86_64.rpm: 头V4 DSA/SHA1 Signature, 密钥 ID baadae52: NOKEY=============================================================== ] 1.2 MB/s |  50 MB  00:00:00 ETA 
kernel-lt-5.4.95-1.el7.elrepo.x86_64.rpm 的公钥尚未安装
kernel-lt-5.4.95-1.el7.elrepo.x86_64.rpm                                                                                                                                                                                  |  50 MB  00:00:38     
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org 检索密钥
导入 GPG key 0xBAADAE52:
 用户ID     : "elrepo.org (RPM Signing Key for elrepo.org) <secure@elrepo.org>"
 指纹       : 96c0 104f 6315 4731 1e0b b1ae 309b c305 baad ae52
 软件包     : elrepo-release-7.0-3.el7.elrepo.noarch (installed)
 来自       : /etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
警告:RPM 数据库已被非 yum 程序修改。
  正在安装    : kernel-lt-5.4.95-1.el7.elrepo.x86_64                                                                                                                                                                                         1/1 
  验证中      : kernel-lt-5.4.95-1.el7.elrepo.x86_64                                                                                                                                                                                         1/1 

已安装:
  kernel-lt.x86_64 0:5.4.95-1.el7.elrepo                                                                                                                                                                                                         

完毕!
  • 查看可用内核
[root@master ~]# cat /boot/grub2/grub.cfg |grep menuentry
if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
  menuentry_id_option=""
export menuentry_id_option
menuentry 'CentOS Linux (5.4.95-1.el7.elrepo.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.el7.x86_64-advanced-8b7cd640-65a6-40a3-a483-a34ec6b66ce8' {
menuentry 'CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.el7.x86_64-advanced-8b7cd640-65a6-40a3-a483-a34ec6b66ce8' {
menuentry 'CentOS Linux (0-rescue-c5860b2961c54ddc9032f382e49d5efb) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-c5860b2961c54ddc9032f382e49d5efb-advanced-8b7cd640-65a6-40a3-a483-a34ec6b66ce8' {
  • 设置开机从新内核启动
[root@master ~]# grub2-set-default "CentOS Linux (5.4.95-1.el7.elrepo.x86_64) 7 (Core)"
  • 查看内核启动项
[root@master ~]# grub2-editenv list
saved_entry=CentOS Linux (5.4.95-1.el7.elrepo.x86_64) 7 (Core)
  • 重启系统使内核生效
reboot
  • 查看内核版本是否生效
uname -r

安装docker

  • 检查docker
which docker
yum -y remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux
  • 关闭防火墙

如果忘关防火墙了,导致docker运行的服务器无法访问,则先关闭防火墙,再重启docker即可。

systemctl stop firewalld
systemctl disable firewalld.service

第一种方式

  • 下载docker包
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-19.03.9-3.el7.x86_64.rpm
  • 安装docker
yum -y localinstall docker-ce-19.03.9-3.el7.x86_64.rpm

第二种方式

  • 添加仓库
yum -y install yum-utils
#官方源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#国内源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 安装docker
yum -y install docker-ce docker-ce-cli containerd.io
  • 安装指定版本

k8s报错:this Docker version is not on the list of validated versions: 20.10.3. Latest validated version: 19.03,那就是版本过高了,没有k8s要求就默认装了。

#列出所有可以安装的版本
[root@master ~]# yum list docker-ce.x86_64 --showduplicates | sort -r
已加载插件:fastestmirror, langpacks
已安装的软件包
可安装的软件包
 * updates: mirrors.ustc.edu.cn
Loading mirror speeds from cached hostfile
 * extras: mirrors.ustc.edu.cn
docker-ce.x86_64            3:20.10.3-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.3-3.el7                    @docker-ce-stable
docker-ce.x86_64            3:20.10.2-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.1-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.0-3.el7                    docker-ce-stable 
......
# docker版本高了安装K8s的时候会报错,所以我这边安装了19.03
yum list docker-ce.x86_64 docker-ce-cli.x86_64 --showduplicates | sort -r | grep 19.03
[root@master ~]# yum list docker-ce.x86_64 docker-ce-cli.x86_64 --showduplicates | sort -r | grep 19.03
docker-ce.x86_64              3:19.03.9-3.el7                  docker-ce-stable 
docker-ce.x86_64              3:19.03.8-3.el7                  docker-ce-stable 
docker-ce.x86_64              3:19.03.7-3.el7                  docker-ce-stable 
docker-ce.x86_64              3:19.03.6-3.el7                  docker-ce-stable 
docker-ce.x86_64              3:19.03.5-3.el7                  docker-ce-stable 
......
docker-ce.x86_64              3:19.03.0-3.el7                  docker-ce-stable 
docker-ce-cli.x86_64          1:19.03.9-3.el7                  docker-ce-stable 
docker-ce-cli.x86_64          1:19.03.8-3.el7                  docker-ce-stable 
docker-ce-cli.x86_64          1:19.03.7-3.el7                  docker-ce-stable 
docker-ce-cli.x86_64          1:19.03.6-3.el7                  docker-ce-stable 
......
yum -y install docker-ce-19.03.15 docker-ce-cli-19.03.15 containerd.io

下载安装包命令 yumdownloader docker-ce-19.03.15 docker-ce-cli-19.03.15 containerd.io --resolve --destdir=docker
yum install --downloadonly --downloaddir=docker docker-ce-19.03.15 docker-ce-cli-19.03.15 containerd.io

  • 安装docker-compoes
curl -SL https://github.moeyy.xyz/https://github.com/docker/compose/releases/download/v2.17.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose

修改docker目录

mkdir /etc/docker/ /data
cat > /etc/docker/daemon.json << EOF
{
    "registry-mirrors": [
    "https://dockerhub.azk8s.cn",
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com",
    "https://h9vtw6kz.mirror.aliyuncs.com"
  ],
    "exec-opts": ["native.cgroupdriver=systemd"],
    "log-driver": "json-file",
    "storage-driver": "overlay2",
    "storage-opts": [
  ],
    "bip": "10.0.0.1/24",
    "ipv6": false,
    "data-root": "/data/docker",
    "log-opts": {
    "max-size": "1m",
    "max-file": "3"
 }
}

EOF
systemctl enable docker
systemctl restart docker

如果已经安装docker参考以下步骤

  • 停止docker服务
systemctl stop docker
  • 找到docker存储目录,移动到需要更改的位置,我这边已经创建好了/data目录

建议使用cp,不建议mv

find / -name docker -type d
cp -r docker /data
  • cp 完成后删除原来的文件
rm -f docker
  • 两种方式
  1. 查找到docker.service服务文件,修改配置文件
find / -name docker.service -type f
vim docker.service

新增ExecStart=/usr/bin/dockerd --graph /data/docker,启动docker服务

systemctl enable docker
systemctl daemon-reload
systemctl start docker
  1. 重新建立软连接,以及重新reload一下
ln -s /data/docker docker #后面docker为最开始查找到的docker目录,最好写绝对路径
systemctl enable docker
systemctl daemon-reload
systemctl start docker

脚本

升级kernel:update_kernel.sh
部署docker:install_docker.sh

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,430评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,406评论 3 398
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,834评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,543评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,547评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,196评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,776评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,671评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,221评论 1 320
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,303评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,444评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,134评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,810评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,285评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,399评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,837评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,455评论 2 359

推荐阅读更多精彩内容