在redhat6上装1.8以下的docker

因为目前1.8以上的docker最低要求是3.10的Linux内核,而我的内核版本远低于此。

1 [root@localhost home]# uname -r
2 2.6.32-754.11.1.el6.x86_64

鉴于我的vm上有一堆的dependency,并且没有太多的时间来把内核升级,所以只能咬牙在redhat6的环境下装docker,先把不能把代码mount到另外一台ubuntu上跑unittest这个事情给解决了(这里我想吐槽管杀不管埋的IT一百遍)。

docker主要依赖于CE(社区版,一般已经很够用了),它的主要依赖包如下:(这个是1.7版本的,从网上看到的)

lxc-libs-1.0.9-1.el6.x86_64.rpm
lua-alt-getopt-0.7.0-1.el6.noarch.rpm
lua-filesystem-1.4.2-1.el6.x86_64.rpm
lua-lxc-1.0.9-1.el6.x86_64.rpm
lxc-1.0.9-1.el6.x86_64.rpm
docker-io-1.7.1-2.el6.x86_64.rpm

device-mapper-libs-1.02.117-12.el6.i686.rpm
device-mapper-libs-1.02.117-12.el6.x86_64.rpm

但是我想用yum下载并安装,所以为了以防万一,我先装了个epel-release。EPEL (Extra Packages for Enterprise Linux)是基于Fedora的一个项目,为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux.

 1 [root@localhost Downloads]# yum -y install epel-release 
2 Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
3 Updating certificate-based repositories.
4 Unable to read consumer identity
5
epel | 4.7 kB 00:00
6 itaas | 2.0 kB 00:00
7 itaas-extras | 1.8 kB 00:00
8 itaas-optional | 2.0 kB 00:00
9 itaas-supplementary | 2.0 kB 00:00
10 Setting up Install Process
11 Package epel-release-6-8.noarch already installed and latest version
12 Nothing to do

安装成功后,yum的源可以看到

 1 [root@localhost Downloads]# yum repolist  
2
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
3
Updating certificate-based repositories.
4 Unable to read consumer identity
5 repo id repo name status
6 epel Extra Packages for Enterprise Linux 6 - x86_64 12,503
7 itaas itaas 20,720
8 itaas-extras itaas extras yum repo 97
9 itaas-optional itaas optional yum repo 11,997
10 itaas-supplementary itaas supplementary yum repo 896 11 repolist: 46,213

查找docker相应的依赖包

 1 [root@localhost etc]# yum search docker
 2 Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
 3 Updating certificate-based repositories.
 4 Unable to read consumer identity
 5 ============================================================================================== N/S Matched: docker ===============================================================================================
 6 docker-io-fish-completion.x86_64 : fish completion files for docker
 7 docker-io-logrotate.x86_64 : cron job to run logrotate on docker containers
 8 docker-io-vim.x86_64 : vim syntax highlighting files for docker
 9 docker-io-zsh-completion.x86_64 : zsh completion files for docker
10 fedora-dockerfiles.x86_64 : Example dockerfiles to assist standing up containers quickly
11 golang-github-docker-libtrust-unit-test.x86_64 : Unit tests for golang-github-docker-libtrust package
12 golang-github-docker-spdystream-unit-test.x86_64 : Unit tests for golang-github-docker-spdystream package
13 golang-github-fsouza-go-dockerclient-devel.noarch : Client for the Docker remote API
14 golang-github-fsouza-go-dockerclient-unit-test.x86_64 : Unit tests for golang-github-fsouza-go-dockerclient package
15 imagefactory-plugins-Docker.noarch : Cloud plugin for Docker
16 python-docker-py.x86_64 : An API client for docker written in Python
17 python-docker-registry-core.noarch : Core package for docker-registry (drivers) developers
18 python-dockerfile-parse.noarch : Python library for Dockerfile manipulation
19 docker.x86_64 : KDE and GNOME2 system tray replacement docking application
20 docker-io.x86_64 : Automates deployment of containerized applications
21 docker-io-devel.x86_64 : A golang registry for global request variables (source libraries)
22 golang-github-docker-libcontainer.x86_64 : Configuration options for containers
23 golang-github-docker-libcontainer-devel.x86_64 : Configuration options for containers
24 golang-github-docker-libtrust-devel.noarch : Library for managing authentication and authorization
25 golang-github-docker-spdystream-devel.noarch : A multiplexed stream library using spdy
26 
27   Name and summary matches only, use "search all" for everything.

安装docker必须的依赖包,以为有些依赖包之间也存在依赖关系,所以有些装完,被依赖的包也就顺便一起装了。

1 [root@localhost etc]# yum install -y docker
2 [root@localhost etc]# yum install -y lua-lxc.x86_64
3 [root@localhost etc]# yum install -y lxc.x86_64
4 [root@localhost8 etc]# yum install -y docker-io.x86_64
5 [root@localhost etc]# yum install -y device-mapper-libs.i686
6 [root@localhost etc]# yum install -y device-mapper-libs.x86_64

然后把docker的service打开,确认docker是否装上了

1 [root@localhost docker]# service docker start
2 Starting docker:                                       [  OK  ]
3 [root@localhost docker]# docker info

这里需要注意一下,因为是redhat6,所以只有service,没有systemctl。这里还关系到另外一个问题,就是尽量不要把docker的存储位置迁移。

目前网上所教的方法,有如下几种:

1. 是把/var/lib/docker整个路径下的文件都拷贝到其他位置,然后再软链接回来。

2.是把/var/lib/docker整个路径下的文件都拷贝到其他位置,然后修改docker.service,

  • --graph=/data/docker:docker新的存储位置
  • --storage-driver=overlay : 当前docker所使用的存储驱动

虽然这俩方法都挺好的,但是redhat6的service写法于redhat7不同,并且我们这里装的docker版本比较低,软链接回来,有些路径依旧不对,docker pull会不起作用,并且明面上不会有报错。所以最好不迁移。

猜你喜欢

转载自www.cnblogs.com/huhujizhuanyi/p/10961500.html