内网低版本内核linux服务器要安装docker

1.离线安装docker

这一步没什么难度在网上找个安装包上传到服务器上按步骤安装

安装地址:Index of linux/static/stable/x86_64/

解压,然后将docker文件夹的内容复制到/usr/bin文件夹中便于平时启动

最后注册成系统服务

添加到service: vim /etc/systemd/system/docker.service
        这里是基础配置,详细配置可使用指定配置文件来启动服务

[Unit]Description=Docker Application Container EngineDocumentation=https://docs.docker.comAfter=network-online.target firewalld.serviceWants=network-online.target[Service]Type=notify# the default is not to use systemd for cgroups because the delegate issues still# exists and systemd currently does not support the cgroup feature set required# for containers run by dockerExecStart=/usr/bin/dockerdExecReload=/bin/kill -s HUP $MAINPID# Having non-zero Limit*s causes performance problems due to accounting overhead# in the kernel. We recommend using cgroups to do container-local accounting.LimitNOFILE=infinityLimitNPROC=infinityLimitCORE=infinity# Uncomment TasksMax if your systemd version supports it.# Only systemd 226 and above support this version.#TasksMax=infinityTimeoutStartSec=0# set delegate yes so that systemd does not reset the cgroups of docker containersDelegate=yes# kill only the docker process, not all processes in the cgroupKillMode=process# restart the docker process if it exits prematurelyRestart=on-failureStartLimitBurst=3StartLimitInterval=60s[Install]WantedBy=multi-user.target

上述文件取自于:https://blog.csdn.net/qq_24442273/article/details/123786928

2.

启动docker的时候遇到错误

AUFS was not found in /proc/filesystem,或者Failed to built-in GetDriver graph devicemapper /var/lib/docker

FS,filesystem是linux所用的文件系统,低内核版本的linux一般使用的是overlay或者vfs和devicemapper。出现这种错误是因为启动docker时你的系统没有你所指定的文件系统类型。

解决方法为,在 /etc/docker/daemon.json里面指定"storage-driver"为你系统支持的fs

如果你的系统只有overlay的话可能又会遇到一个巨坑:

the backing xfs filesystem is formatted without d_type support

什么是d_type

d_type 是 Linux 内核的一个术语,表示 “目录条目类型”,而目录条目,其实是文件系统上目录信息的一个数据结构。d_type,就是这个数据结构的一个字段,这个字段用来表示文件的类型,是文件,还是管道,还是目录还是套接字等。

d_type 从 Linux 2.6 内核开始就已经支持了,只不过虽然 Linux 内核虽然支持,但有些文件系统实现了 d_type,而有些,没有实现,有些是选择性的实现,也就是需要用户自己用额外的参数来决定是否开启d_type的支持。

检查xfs文件系统是否支持d_type

[root@10-80-119-18 ~]# xfs_info /
meta-data=/dev/vda2              isize=256    agcount=9, agsize=2589248 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=0        finobt=0
data     =                       bsize=4096   blocks=20843184, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=5057, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

注意以上输出中的ftype字段,为0则表示不支持。

解决方案

  1. 指定docker的存储驱动类型为devicemapper,devicemapper不需要文件系统支持d_type,但docker官方目前推荐使用overlay2,因此不选择此方案。
  2. 重新格式化docker data-root目录所在的文件系统,xfs格式化时添加参数ftype=1,如下
mkfs.xfs -n ftype=1 /dev/mapper/vg_data-lv_data -f

上述关于d_type内容转自于:docker启动报错the backing xfs filesystem is formatted without d_type support - 安安

改为devicemapper方法我的服务器不支持devicemapper所以不行,因为是上线的服务器

不可能格式化root目录,所以两个方法都行不通。

所幸的是我的服务器还支持vfs,在daemon.json里面指定了"storage-driver"为"vfs"之后启动便不报关于FS的错误了。

3. iptable和filewall的冲突

最后还遇到了Failed to program NAT chain: INVALID_ZONE: docker这个问题,大致应该是因为iptable和filewall冲突导致,如果想解决得修改防火墙。线上环境不好修改,所以得另外的想方法

我这里指定了关闭docker的iptable功能之后成功终于成功启动

关闭方法:在/etc/docker/daemon.json中添加        "iptables":false

记录一次docker安装遇到的坑相关推荐

  1. docker安装redis并将配置文件和数据文件映射到外部

    [Docker那些事]系列文章 Dockerfile 文件结构.docker镜像构建过程详细介绍 Dockerfile文件中CMD指令与ENTRYPOINT指令的区别 构建Docker镜像指南,含实战 ...

  2. Docker安装及部署

    Docker安装及部署 一.Docker安装 二.安装Centos容器并安装Jdk 三.Docker安装部署Redis 四.Docker部署Nginx 五.Docker安装Mysql 持续记录.... ...

  3. docker 安装fileBrowser

    fileBrowser 是一个 Web 文件浏览器,它更类似于一个网盘服务器,使我们可以在浏览器中访问服务器上的文件资源.同时,fileBrowser 还支持添加多个用户,并为不同的用户设置不同的访问 ...

  4. docker安装jenkins并且通过jenkins部署项目(超详细and靠谱)

    一.简介: 本文主要记录如何通过docker安装jenkins,并且通过jenkins部署项目,最终效果是只要在jenkins对某个项目点击构建,jenkins就会去gitLab上拉取最新项目的最新代 ...

  5. 记录一下Ubuntu下安装Docker遇到的坑

    安装了一天的docker安装的我头皮发麻 由于是新装的系统,所以缺少一堆的依赖 第一个问题,就是缺少依赖的问题 Selecting previously unselected package dock ...

  6. centos7安装mysql日志空白_centos7安装Mysql爬坑记录 - G

    centos7安装Mysql爬坑记录 查看是否已安装 使用下列命令查看是否已经安装过mysql/mariadb/PostgreSQL 如果未安装,不返回任何结果(ECS的centos镜像默认未安装任何 ...

  7. 【记录】Docker 安装 activemq

    [记录]Docker 安装 activemq 拉取镜像 创建active文件目录 启动容器 访问控制台 拉取镜像 docker pull webcenter/activemq 创建active文件目录 ...

  8. 【记录】Docker安装后出现 Cannot connect to the Docker daemon

    [记录]Docker安装后出现 Cannot connect to the Docker daemon 错误描述 分析及解决方案 解决 启动Docker 将登陆账户加入 Docker 组 配置开机启动 ...

  9. Centos Docker 安装 Redis 并测试使用记录

    Docker 安装 Redis 安装过程记录 查看可用的 Redis 版本 拉取 Redis 镜像 查看镜像安装情况 运行容器 查看运行情况 安装过程记录 查看可用的 Redis 版本 通过redis ...

最新文章

  1. hive数据仓库摘录和总结
  2. iOS如何实现语音播报及后台播放
  3. 客户端(STS)连接服务器上redis时的问题
  4. 浅谈Java中类加载机制
  5. 树:哈夫曼树和哈夫曼编码的详细介绍以及代码实现
  6. 基于主机Overlay和自研虚拟化网关的VPC在360的落地
  7. caffe 使用小技巧
  8. 【报告分享】中国城市人工智能发展指数报告.pdf(附下载链接)
  9. freeCAD transform stepamp;amp; stp to stl logging py2exe 打包
  10. 用Python求三角形面积
  11. win10 自定义右键菜单
  12. 吴恩达机器学习课程笔记(英文授课) Lv.1 新手村(回归)
  13. wuc-tab标签点击不了_不干胶标签专属定制
  14. SharpDevelop学习笔记(4)——SharpDevelop的核心
  15. 经常说的ROI是什么,怎么计算
  16. Tensorflow基础4:run()函数
  17. 成长部落# 编辑推荐 Python 入门学习内容系列
  18. 什么是嵌入式视觉?ARM处理器打造嵌入式视觉硬件
  19. 如何从照片中提取文字?
  20. 我的Java学习之路(第十六天)----- Java实现杨辉三角

热门文章

  1. mysql 排序序列_Mysql序列(八)—— group by排序问题 怀瑾握瑜XI
  2. 与同行的对比,M-DAO的崛起已成定局
  3. PAT-1014 福尔摩斯的约会
  4. 校园网连不上ipv6问题
  5. 地图经纬度坐标相互转换度分秒
  6. 为什么王者荣耀总是服务器中断,王者荣耀服务器正在维护中怎么回事 7月4日王者荣耀进不去怎么办...
  7. 短网址系统设计与实战
  8. Linux学习入门-------------------------VMvare与镜像的安装与配置
  9. 洛谷P3009-[USACO11JAN]Profits S(DP-最大子段和)
  10. 前尘浮华一场梦 NOI2018 游记