chenjiali 发表于 2015-10-13 11:34:17

阿里云Centos6.5安装配置docker

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

Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc。Redhat 已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品中广泛应用。

Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术。

在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就

像操作一个快速轻量级的虚拟机一样简单。
  

  



1.下载安装
在centos上运行docker必须是64位并且内核在2.6.32-431或者更高内核版本,建议完全更新系统
# getconf LONG_BIT   ---查看位数32/64
64
# uname -r   --查看内核版本
2.6.32-431.23.3.el6.x86_64
# yum update   ---完全更新系统
# uname -r
2.6.32-431.23.3.el6.x86_64
#lsb_release -a----列出所有版本信息
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch
Distributor ID: CentOS
Description: CentOS release 6.5 (Final)
Release: 6.5
Codename: Final


  ----下载Docker。

# sudo yum install http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm
# sudo yum install docker-io


2.启动
  现在,它已经安装好了,让我们来启动docker进程

# sudo service docker start
它将会输出如下的信息:
Starting cgconfig service:                                 
Starting docker:                                 

  如果我们需要开机自启动,如下:

#sudo chkconfig docker on


3.最新的centos镜像


现在我们确认docker是否正常工作,首先我们需要获取最新的centos镜像
# sudo docker pull centos:latest
它将会输出如下的信息:
Cannot connect to the Docker daemon. Is 'docker -d' running on this host?
# docker -d
它将会输出如下的信息:
WARN You are running linux kernel version 2.6.32-431.23.3.el6.x86_64, which might be unstable running docker.


Please upgrade your kernel to 3.10.0.
INFO using prior storage driver "devicemapper"
INFO Listening for HTTP on unix (/var/run/docker.sock)
WARN Running modprobe bridge nf_nat failed with message: , error: exit status 1
FATA Error starting daemon: Error initializing network controller: Error creating default "bridge" network:


operation not supported


因为阿里云默认把所有的私网地址段都加到导致docker找不到一个可用的IP段了。


# ifconfig
它将会输出如下的信息:
eth0      Link encap:EthernetHWaddr 00:16:3E:00:18:94
          inet addr:10.172.193.40Bcast:10.172.199.255Mask:255.255.248.0
          UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1
          RX packets:2694 errors:0 dropped:0 overruns:0 frame:0
          TX packets:235 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:122753 (119.8 KiB)TX bytes:20141 (19.6 KiB)
          Interrupt:148


eth1      Link encap:EthernetHWaddr 00:16:3E:00:43:32
          inet addr:182.92.177.208Bcast:182.92.179.255Mask:255.255.252.0
          UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1
          RX packets:473435 errors:0 dropped:0 overruns:0 frame:0
          TX packets:395 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:19904390 (18.9 MiB)TX bytes:46006 (44.9 KiB)
          Interrupt:147


lo      Link encap:Local Loopback
          inet addr:127.0.0.1Mask:255.0.0.0
          UP LOOPBACK RUNNINGMTU:65536Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)TX bytes:0 (0.0 b)


# docker -bip=10.172.193.40/24 -d &
它将会输出如下的信息:
1393
# Warning: '-bip' is deprecated, it will be replaced by '--bip' soon. See usage.
INFO +job serveapi(unix:///var/run/docker.sock)   
INFO WARNING: You are running linux kernel version 2.6.32-504.23.4.el6.x86_64, which might be unstable


running docker. Please upgrade your kernel to 3.8.0.
INFO +job init_networkdriver()                  
INFO Listening for HTTP on unix (/var/run/docker.sock)
INFO -job init_networkdriver() = OK (0)         
INFO Loading containers: start.                  


INFO Loading containers: done.                  
INFO docker daemon: 1.5.0 a8a31ef/1.5.0; execdriver: native-0.2; graphdriver: devicemapper
INFO +job acceptconnections()                     
INFO -job acceptconnections() = OK (0)






#lxc-checkconfig
它将会输出如下的信息:
Kernel configuration not found at /proc/config.gz; searching...
Kernel configuration found at /boot/config-2.6.32-504.23.4.el6.x86_64
--- Namespaces ---
Namespaces: enabled
Utsname namespace: enabled
Ipc namespace: enabled
Pid namespace: enabled
User namespace: enabled
Network namespace: enabled
Multiple /dev/pts instances: enabled


--- Control groups ---
Cgroup: enabled
Cgroup namespace: enabled
Cgroup device: enabled
Cgroup sched: enabled
Cgroup cpu account: enabled
Cgroup memory controller: /usr/bin/lxc-checkconfig: line 103: [: too many arguments
enabled
Cgroup cpuset: enabled


--- Misc ---
Veth pair device: enabled
Macvlan: enabled
Vlan: enabled
File capabilities: /usr/bin/lxc-checkconfig: line 118: [: -gt: unary operator expected


Note : Before booting a new kernel, you can check its configuration
usage : CONFIG=/path/to/config /usr/bin/lxc-checkconfig
可以看到 Control groups 项目都是支持的,所以我们暂时忽略这个告警。


测试使用-我们需要下载最新的centos镜像
注意:由于 Aliyun 的网络直接 pull 官方镜像也不是很稳定,可选择官方标准镜像来测试


# sudo docker pull centos:latest
它将会输出如下的信息:
INFO POST /v1.17/images/create?fromImage=centos%3Alatest
INFO +job pull(centos, latest)                  
INFO +job resolve_repository(centos)            
INFO -job resolve_repository(centos) = OK (0)   
INFO +job trust_update_base()                     
INFO -job trust_update_base() = OK (0)            
Pulling repository centos
7322fbe74aa5: Download complete
f1b10cd84249: Download complete
c852f6d61e65: Download complete
INFO +job log(pull, centos:latest, )            
INFO -job log(pull, centos:latest, ) = OK (0)   
INFO -job pull(centos, latest) = OK (0)         
Status: Downloaded newer image for centos:latest




  下一步,我们要确保通过如下命令可以看到镜像运行情况:

# docker images centos
它将会输出如下的信息:
INFO GET /v1.17/images/json?filter=centos         
INFO +job images()                              
INFO -job images() = OK (0)                     
REPOSITORY          TAG               IMAGE ID            CREATED             VIRTUAL SIZE
centos            7                   7322fbe74aa5      4 weeks ago         172.2 MB
  centos            latest            7322fbe74aa5      4 weeks ago         172.2 MB
  centos            centos7             7322fbe74aa5      4 weeks ago         172.2 MB
  

  

运行简单的bash shell来测试这个镜像
# docker run -i -t centos /bin/bash
它将会输出如下的信息:
INFO POST /v1.17/containers/create               
INFO +job create()                              
INFO +job log(create, 523e56a0b3bd09f625793a97a5a9e2a22be804326d919bf4a2266507e45c
INFO -job log(create, 523e56a0b3bd09f625793a97a5a9e2a22be804326d919bf4a2266507e45c
INFO -job create() = OK (0)                     
INFO POST /v1.17/containers/523e56a0b3bd09f625793a97a5a9e2a22be804326d919bf4a22665
INFO +job container_inspect(523e56a0b3bd09f625793a97a5a9e2a22be804326d919bf4a22665
INFO -job container_inspect(523e56a0b3bd09f625793a97a5a9e2a22be804326d919bf4a22665
INFO +job attach(523e56a0b3bd09f625793a97a5a9e2a22be804326d919bf4a2266507e45c1873)
                                                                                       
                                                                                        07e45c1873)
            INFO +job allocate_interface(523e56a0b3bd09f625793a97a5a9e2a22be804326
                                                                                       
                                                                                       


3a97a5a9e2a22be804326d919bf4a2266507e45c1873, centos:7)
                                                      INFO -job log(start, 523e5
                                                                                       
                                                                                        0482] POST


/v1.17/containers/523e56a0b3bd09f625793a97a5a9e2a22be804326d919bf4a2266507e45
                                                                                       
                                                                                       


4326d919bf4a2266507e45c1873, 54, 270) = OK (0)
                                             # INFO POST


/v1.17/containers/523e56a0b3bd09f625793a97a5a9e2a22be804326d919bf4a2266507e45c1873/resize?h=23&w=88
          INFO +job resize(523e56a0b3bd09f625793a97a5a9e2a22be804326d919bf4a2266507e45c1873, 23, 88)
                   INFO -job resize(523e56a0b3bd09f625793a97a5a9e2a22be804326d919bf4a2266507e45c1873, 23, 88)


= OK (0)




如果正常,你会获得一个简单的bash提示,输入exit退出。
# exit




  -----------------------------------------------------------------------------
  

  

         版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: 阿里云Centos6.5安装配置docker