zoukankan      html  css  js  c++  java
  • Docker入坑系列(一)

    Docker入坑系列(一)

    引用嘛,当然是来引用别人说的东西啦。

    Docker 是一个开源项目,诞生于 2013 年初,它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。

    PS:

    1. 由于小轩对Centos7命令不太熟,所以此次系统选择的Centos6.5。(其实是手里只有6.5和7的镜像啦,不想再下载啦。)
    2. 针对Centos6.x最小化安装之后的一些个人习惯,参见:Centos6.x最小化安装后的9件事。当然灵感来源于Ubuntu16.04安装后必备14件事-。-

    记得不知道在哪里看过,Docker在Centos上有内核要求,从别家博客扒拉出来的一个要求是这样的:

    1. 必须是64位Centos。
    2. 建议内核在3.8以上。

    既然首次入坑,就先按照先辈们的经验来吧:

    查看系统位数

    ➜  ~ getconf LONG_BIT
    64
    

    嗯,64的。

    查看内核版本

    ➜  ~ uname -r
    2.6.32-754.3.5.el6.x86_64
    ➜  ~ uname -a
    Linux docker.centos6.5 2.6.32-754.3.5.el6.x86_64 #1 SMP Tue Aug 14 20:46:41 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
    

    嗯,内核版本2.6.......显然,内核版本不靠谱啊。那就先升级内核吧。

    Centos6.5 内核升级

    在Linux中,内核升级在我认知的世界中有两种方式:

    1. 内核源码编译
    2. rpm包安装

    咳咳,咱们这次的主题是Docker不是Linux~,所以就使用rpm包安装吧。(其实昨天在阿里云上下载了3个小时的内核包都没下完。耐性不够啊-。-)

    既然是rpm包安装那就简单多啦。

    rpm安装linux内核

    首先呢,以root用户输入

    rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    

    之后呢,输入

    rpm -Uvh https://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm
    

    然后咧,输入

    yum -y --enablerepo=elrepo-kernel install kernel-lt
    

    别打我~这里有。参见Get started~~

    静静的等待软件包下载完毕,小轩这里就不上图了,直接copy吧。

    ➜  /opt yum -y --enablerepo=elrepo-kernel install kernel-lt
    已加载插件:fastestmirror
    设置安装进程
    Loading mirror speeds from cached hostfile
     * base: mirrors.aliyun.com
     * elrepo: ftp.utexas.edu
     * elrepo-kernel: ftp.utexas.edu
     * extras: mirrors.aliyun.com
     * updates: mirrors.aliyun.com
    elrepo                                                           | 2.9 kB     00:00
    elrepo/primary_db                                                | 694 kB     00:02
    elrepo-kernel                                                    | 2.9 kB     00:00
    elrepo-kernel/primary_db                                         |  22 kB     00:00
    解决依赖关系
    --> 执行事务检查
    ---> Package kernel-lt.x86_64 0:4.4.147-1.el6.elrepo will be 安装
    --> 完成依赖关系计算
    
    依赖关系解决
    
    ========================================================================================
     软件包           架构          版本                         仓库                  大小
    ========================================================================================
    正在安装:
     kernel-lt        x86_64        4.4.147-1.el6.elrepo         elrepo-kernel         39 M
    
    事务概要
    ========================================================================================
    Install       1 Package(s)
    
    总下载量:39 M
    Installed size: 178 M
    下载软件包:
    kernel-lt-4.4.147-1.el6.elrep 50% [=========-         ]  67 kB/s |  20 MB     04:52 ETA
    

    速度堪优啊。。。。。。。。。。。

    Waiting…………..

    我去,好坑啊-。-把翻墙一关,下载完了。。。。。尴尬。走着,咱们继续。

    总下载量:39 M
    Installed size: 178 M
    下载软件包:
    http://ftp.utexas.edu/elrepo/kernel/el6/x86_64/RPMS/kernel-lt-4.4.147-1.el6.elrepo.x86_64.rpm: [Errno 12] Timeout on http://ftp.utexas.edu/elrepo/kernel/el6/x86_64/RPMS/kernel-lt-4.4.147-1.el6.elrepo.x86_64.rpm: (28, 'Operation too slow. Less than 1 bytes/sec transfered the last 30 seconds')
    尝试其他镜像。
    http://muug.ca/mirror/elrepo/kernel/el6/x86_64/RPMS/kernel-lt-4.4.147-1.el6.elrepo.x86_64.rpm: [Errno 14] PYCURL ERROR 6 - "Couldn't resolve host 'muug.ca'"
    尝试其他镜像。
    kernel-lt-4.4.147-1.el6.elrepo.x86_64.rpm                        |  39 MB     00:41
    运行 rpm_check_debug
    执行事务测试
    事务测试成功
    执行事务
    Warning: RPMDB altered outside of yum.
      正在安装   : kernel-lt-4.4.147-1.el6.elrepo.x86_64                                1/1
      Verifying  : kernel-lt-4.4.147-1.el6.elrepo.x86_64                                1/1
    
    已安装:
      kernel-lt.x86_64 0:4.4.147-1.el6.elrepo
    
    完毕!
    ➜  /opt
    

    好啦,之后呢,我们让系统以CentOS (4.4.147-1.el6.elrepo.x86_64)内核启动。

    以root身份修改/etc/grub.conf文件,将default修改为CentOS (4.4.147-1.el6.elrepo.x86_64)的下标。

    PS:

    可以这样说吧-。-学名叫啥我也不知道,对于程序员来说,数组下标能更好理解???

    经过Centos6.x最小化安装后的9件事这里的配置,应该是第10行。将第10行的default=1修改为default=0

    # grub.conf generated by anaconda
    #
    # Note that you do not have to rerun grub after making changes to this file
    # NOTICE:  You have a /boot partition.  This means that
    #          all kernel and initrd paths are relative to /boot/, eg.
    #          root (hd0,0)
    #          kernel /vmlinuz-version ro root=/dev/mapper/vg_docker-lv_root
    #          initrd /initrd-[generic-]version.img
    #boot=/dev/sda
    default=1
    timeout=5
    splashimage=(hd0,0)/grub/splash.xpm.gz
    hiddenmenu
    title CentOS (4.4.147-1.el6.elrepo.x86_64)
    	root (hd0,0)
    	kernel /vmlinuz-4.4.147-1.el6.elrepo.x86_64 ro root=/dev/mapper/vg_docker-lv_root nomodeset rd_NO_LUKS rd_LVM_LV=vg_docker/lv_swap LANG=en_US.UTF-8 rd_LVM_LV=vg_docker/lv_root rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
    	initrd /initramfs-4.4.147-1.el6.elrepo.x86_64.img
    title CentOS (2.6.32-754.3.5.el6.x86_64)
    	root (hd0,0)
    	kernel /vmlinuz-2.6.32-754.3.5.el6.x86_64 ro root=/dev/mapper/vg_docker-lv_root nomodeset rd_NO_LUKS rd_LVM_LV=vg_docker/lv_swap LANG=en_US.UTF-8 rd_LVM_LV=vg_docker/lv_root rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
    	initrd /initramfs-2.6.32-754.3.5.el6.x86_64.img
    title CentOS (2.6.32-431.el6.x86_64)
    	root (hd0,0)
    	kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vg_docker-lv_root nomodeset rd_NO_LUKS rd_LVM_LV=vg_docker/lv_swap LANG=en_US.UTF-8 rd_LVM_LV=vg_docker/lv_root rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
    	initrd /initramfs-2.6.32-431.el6.x86_64.img
    

    好了,最重要的一步!!!输入:init 6或者reboot让服务器重启~~~~

     ✘ xuan@tdg � ~ � ssh root@10.211.55.4
    Last login: Thu Aug 16 10:29:43 2018 from 10.211.55.2
    ➜  ~ uname -r
    4.4.147-1.el6.elrepo.x86_64
    ➜  ~
    

    大功告成~~~我们的系统内核已经成功的从2.6.32-754.3.5.el6.x86_64升级到了4.4.147-1.el6.elrepo.x86_64~~那接下来就是Docker真正的入坑纪录了!

    Let's go!

    彩蛋

    提供一些查看linux系统版本号和系统位数的方法:

    ➜  ~ cat /etc/redhat-release
    CentOS release 6.10 (Final)
    ➜  ~ cat /proc/version
    Linux version 4.4.147-1.el6.elrepo.x86_64 (mockbuild@Build64R6) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC) ) #1 SMP Thu Aug 9 10:58:02 EDT 2018
    ➜  ~ uname -a
    Linux docker.centos6.5 4.4.147-1.el6.elrepo.x86_64 #1 SMP Thu Aug 9 10:58:02 EDT 2018 x86_64 x86_64 x86_64 GNU/Linux
    ➜  ~ uname -r
    4.4.147-1.el6.elrepo.x86_64
    ➜  ~ cat /etc/issue
    CentOS release 6.10 (Final)
    Kernel 
     on an m
    
    ➜  ~ getconf LONG_BIT
    64
    ➜  ~ file /bin/ls
    /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
    ➜  ~
    
  • 相关阅读:
    zabbix通过简单shell命令监控elasticsearch集群状态
    zabbix通过简单命令监控elasticsearch集群状态
    生产环境elasticsearch5.0.1和6.3.2集群的部署配置详解
    执行update语句mysql5.6报错ERROR 1292 (22007): Truncated incorrect DOUBLE value: '糖糖的坤大叔'
    aliyun添加数据盘后的物理分区和lvm逻辑卷两种挂载方式
    aliyun添加数据盘parted方式分区格式化和lvm挂载及数据盘的扩容
    Zabbix Agent active批量调整客户端为主动模式监控
    aliyun服务器ecs被ddos后无法被zabbix-server监控的处理
    centos环境自动化批量安装jdk软件脚本
    centos环境自动化批量安装软件脚本
  • 原文地址:https://www.cnblogs.com/tdg-yyx/p/9485942.html
Copyright © 2011-2022 走看看