Docker系列(一)CentOS 6.5 离线安装、不升级内核
Docker系列(一)CentOS 6.5 离线安装、不升级内核
本特安装教程特点
1、由于是离线下载,需要提前下载好需要的依赖包
2、使用的版本为Centos6.5
3、不升级内核
4、提供异常解决方案。
安装过程
一、下载依赖包(使用能联网的节点)
依赖包可以自己下载,也可以利用我下载的安装包,链接: https://pan.baidu.com/s/1hr4xjrY 密码: 4j7g
1.安装downloadonly插件使用yum下载rpm包
# yum install yum-plugin-downloadonly
使用方法:
yum install --downloadonly
(只下载不安装)
--downloaddir=rpm
包下载的目录 安装的组件名
2.下载docker需要的依赖包
2.1配置Fedora EPEL源
# wget http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -ivh epel-release-6-8.noarch.rpm
2.2 添加hop5.repo源
# cd /etc/yum.repos.d
# wget http://www.hop5.in/yum/el6/hop5.repo
2.3下载依赖包
# mkdir /usr/local/docker
# yum install --downloadonly --downloaddir=/usr/local/docker docker-io
这一步会报错找不到对应的rpm包;原因是对应的rpm包的版本号改变了,复制没有下载的rpm包的包名(不带版本号),进入下面的网址:
http://mirrors.aliyun.com/epel/6/x86_64/
找到对应的包名的rpm包,比如这里提示lxc-1.0.8-1.el6.x86_64.rpm
包下载失败,在上面的网址中找到lxc-1.0.9-1.el6.x86_64.rpm
,复制链接地址,http://mirrors.aliyun.com/epel/6/x86_64/lxc-1.0.9-1.el6.x86_64.rpm
# cd /usr/local/docker
# wget http://mirrors.aliyun.com/epel/6/x86_64/lxc-1.0.9-1.el6.x86_64.rpm
就可以下载对应的包了
这一步下载的所有包截图如下,放在docker目录下,其中文件夹device-mapper-libs是下边一步下载到rpm:
2.4下载device-mapper-libs,不下载后面启动docker会报错,下载网址:http://mirrors.aliyun.com/centos/6/os/x86_64/Packages/
# mkdir /usr/local/docker/device-mapper-libs
# yum install --downloadonly --downloaddir=/usr/local/docker/device-mapper-libs device-mapper-libs
这一步下载到的lib截图如下:
2.5 将整个docker目录拷贝到需要安装docker的离线的节点,可以放在/usr/local/src目录下
二、安装docker(离线节点)
1.安装docker
如果执行rpm命令失败,尝试需要导入签名:
[root@localhost rpm-gpg]# rpm --import http://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-6
[root@localhost rpm-gpg]# rpm –import /etc/pki/rpm-gpg/RPM*
依此执行docker下的安装包:
# cd /usr/local/src/docker
# rpm -ivh lxc-libs-1.0.9-1.el6.x86_64.rpm
# rpm -ivh lua-alt-getopt-0.7.0-1.el6.noarch.rpm
# rpm -ivh lua-filesystem-1.4.2-1.el6.x86_64.rpm
# rpm -ivh lua-lxc-1.0.9-1.el6.x86_64.rpm
# rpm -ivh lxc-1.0.9-1.el6.x86_64.rpm
# rpm -ivh docker-io-1.7.1-2.el6.x86_64.rpm
2.运行docker -d
命令报错如下:
docker: relocation error: docker: symbol dm_task_get_info_with_deferred_remove, version Base not defined in file libdevmapper.so.1.02 with
link time reference
2.1解决如下
进入device-mapper-libs目录,依此安装所有包。
方法一:
# cd /usr/local/src/docker/device-mapper-libs
# yum -y install device-mapper*
方法二:
# rpm -ivh device-mapper***.rpm –-force --nodeps
务必保持lib为如下版本,否则解决不了异常。
3.再次运行docker -d
命令,报错如下:
FATA[0000] Error mounting devices cgroup: mountpoint for devices not found
3.1解决如下:
找到cgroup目录,然后对其进行挂载,我的安装环境cgroup目录在/cgroup
# vi /etc/fstab
#在结尾添加
none /cgroup cgroup defaults 0 0
使之挂载生效
# mount -a
4.再次运行docker -d
;放到后台运行
# mkidr /usr/local/docker
# cd /usr/local/docker
# nohup docker -d &
# tail -f nohup.out
如果没有报错信息,就说明安装成功!
ps:
执行service docker restart报如下错误:
(1) 检查cgconfig的状态
# /etc/init.d/cgconfig status
如果没有启动,执行如下命令:
# /etc/init.d/cgconfig restart
执行如下命令,看看是否ok:
# service docker restart
(2) check cgconfig is on
# chkconfig --list cgconfig
cgconfig 0:off 1:off 2:off 3:off 4:off 5:off 6:off
if cgconfig is off, turn it on
(3) if still does not work, may be some cgroups modules is missing. In the kernel .config file, make menuconfig, add those modules into kernel and recompile and reboot
after that, it should be OK
好好玩你的docker吧!
借鉴于:http://www.jianshu.com/p/ead7385fb418