> CentOS > CentOS教程 >

阿里云Centos6.5安装配置

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或者更高内核版本,建议完全更新系统
[root@iZ25gswv4olZ ~]# getconf LONG_BIT   ---查看位数32/64
64
[root@iZ25gswv4olZ ~]# uname -r   --查看内核版本
2.6.32-431.23.3.el6.x86_64
[root@iZ25gswv4olZ ~]# yum update   ---完全更新系统
[root@iZ25gswv4olZ ~]# uname -r 
2.6.32-431.23.3.el6.x86_64
[root@iZ25gswv4olZ ~]#  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。

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


2.启动

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

[root@iZ25gswv4olZ ~]# sudo service docker start
它将会输出如下的信息:
Starting cgconfig service:                                 [  OK  ]
Starting docker:                                   [  OK  ]

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

[root@iZ25gswv4olZ ~]#sudo chkconfig docker on


3.最新的centos镜像


现在我们确认docker是否正常工作,首先我们需要获取最新的centos镜像
[root@iZ25gswv4olZ /]# sudo docker pull centos:latest
它将会输出如下的信息:
Cannot connect to the Docker daemon. Is 'docker -d' running on this host?
[root@iZ25gswv4olZ local]# docker -d
它将会输出如下的信息:
WARN[0000] 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[0000] [graphdriver] using prior storage driver "devicemapper" 
INFO[0000] Listening for HTTP on unix (/var/run/docker.sock) 
WARN[0000] Running modprobe bridge nf_nat failed with message: , error: exit status 1 
FATA[0000] Error starting daemon: Error initializing network controller: Error creating default "bridge" network: 


operation not supported 


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


[root@iZ25gswv4olZ /]# ifconfig
它将会输出如下的信息:
eth0      Link encap:Ethernet  HWaddr 00:16:3E:00:18:94  
          inet addr:10.172.193.40  Bcast:10.172.199.255  Mask:255.255.248.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric: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:Ethernet  HWaddr 00:16:3E:00:43:32  
          inet addr:182.92.177.208  Bcast:182.92.179.255  Mask:255.255.252.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric: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.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric: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)


[root@iZ25gswv4olZ /]# docker -bip=10.172.193.40/24 -d & 
它将会输出如下的信息:
[1] 1393
[root@iZ25gswv4olZ /]# Warning: '-bip' is deprecated, it will be replaced by '--bip' soon. See usage.
INFO[0000] +job serveapi(unix:///var/run/docker.sock)   
INFO[0000] 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[0000] +job init_networkdriver()                    
INFO[0000] Listening for HTTP on unix (/var/run/docker.sock) 
INFO[0000] -job init_networkdriver() = OK (0)           
INFO[0000] Loading containers: start.                   


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


[root@iZ25gswv4olZ /]#  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 官方镜像也不是很稳定,可选择官方标准镜像来测试


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


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

[root@iZ25gswv4olZ /]# docker images centos
它将会输出如下的信息:
INFO[3912] GET /v1.17/images/json?filter=centos         
INFO[3912] +job images()                                
INFO[3912] -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来测试这个镜像
[root@iZ25gswv4olZ /]# docker run -i -t centos /bin/bash
它将会输出如下的信息:
INFO[0481] POST /v1.17/containers/create                
INFO[0481] +job create()                                
INFO[0481] +job log(create, 523e56a0b3bd09f625793a97a5a9e2a22be804326d919bf4a2266507e45c
INFO[0481] -job log(create, 523e56a0b3bd09f625793a97a5a9e2a22be804326d919bf4a2266507e45c
INFO[0481] -job create() = OK (0)                       
INFO[0481] POST /v1.17/containers/523e56a0b3bd09f625793a97a5a9e2a22be804326d919bf4a22665
INFO[0481] +job container_inspect(523e56a0b3bd09f625793a97a5a9e2a22be804326d919bf4a22665
INFO[0481] -job container_inspect(523e56a0b3bd09f625793a97a5a9e2a22be804326d919bf4a22665
INFO[0481] +job attach(523e56a0b3bd09f625793a97a5a9e2a22be804326d919bf4a2266507e45c1873)
                                                                                        
                                                                                        07e45c1873) 
            INFO[0481] +job allocate_interface(523e56a0b3bd09f625793a97a5a9e2a22be804326
                                                                                        
                                                                                        


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


/v1.17/containers/523e56a0b3bd09f625793a97a5a9e2a22be804326d919bf4a2266507e45
                                                                                        
                                                                                        


4326d919bf4a2266507e45c1873, 54, 270) = OK (0) 
                                               [root@523e56a0b3bd /]# INFO[0487] POST 


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


= OK (0) 




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

(责任编辑:IT)