天天看點

Centos6.5更新核心,并安裝docker

一、核心更新,從2.6更新到3.10.107

1、先确定目前核心版本

# uname -r
2.6.32-220.el6.x86_64
# cat /etc/centos-release 
CentOS release 6.5 (Final)
           

2、安裝依賴開發環境和開發庫

# yum grouplist  //檢視已經安裝的和未安裝的軟體包組,來判斷我們是否安裝了相應的開發環境和開發庫;
# yum groupinstall "Development Tools"  //一般是安裝這兩個軟體包組,這樣做會确定你擁有編譯時所需的一切工具
# yum install ncurses-devel //你必須這樣才能讓 make *config 這個指令正确地執行
# yum install qt-devel //如果你沒有 X 環境,這一條可以不用
# yum install hmaccalc zlib-devel binutils-devel elfutils-libelf-devel //建立 CentOS-6 核心時需要它們
           

3、擷取核心源碼,從www.kernel.org下載下傳源碼包上傳或者這行指令都行,最好拿longterm版本的

wget  https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.10.107.tar.xz
           

4、開始更新核心

cd /usr/src/linux-3.10.107
 #複制原核心配置 
 cp /boot/config-2.6.32-71.el6.x86_64 .config 
 vim .config
 /*将如下内容 追加入.config 并儲存。很重要,要不然後面docker起不起來
    CONFIG_NF_NAT_IPV4=y
    CONFIG_IP_NF_TARGET_MASQUERADE=y
    CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y
    CONFIG_MEMCG_SWAP=y
    CONFIG_MEMCG_SWAP_ENABLED=y
    CONFIG_AUFS_FS=y
    CONFIG_DM_THIN_PROVISIONING=y
    CONFIG_OVERLAY_FS=y
    CONFIG_CGROUP_PERF=y
    CONFIG_CFS_BANDWIDTH=y
    HYPERVISOR_GUEST=y
    CONFIG_VMWARE_BALLOON=m
 */
 #編輯核心配置,開啟核心CGROUP支援
 make menuconfig
 #選擇General setup-->Control Group support->Memory Resource Controller for Control Groups選中
 #自動整理.config
 sh -c 'yes "" | make oldconfig'
 #編譯并安裝核心(j4代表4個線程同時編譯,請根據你的機器情況設定)
 make -j4 bzImage && make -j4 modules && make -j4 modules_install && make install
 vim /etc/grub.conf 
 修改default=0儲存。即選擇從你新編譯的核心啟動linux。
 #重新開機生效
 reboot 
           

5、最後執行uname -a 檢視是否更新 成功

二、安裝docker

rpm -ivh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
yum -y install docker-io
service docker start
 #設定開機啟動
chkconfig docker on
           

三、問題:

有可能會碰到“Cannot connect to the Docker daemon. Is 'docker -d' running on this host?”這個問題,一般是有三種情況會出現:

1、服務沒有啟動;

2、權限不是root;

3、某個庫的版本太低了,再執行一下

yum-config-manager --enable public_ol6_latest
yum install device-mapper-event-libs
           

如果上面都還是找不到問題,可以執行docker -d 檢視一下問題所在