当前位置: > Linux服务器 > Docker >

阿里云CentOS 6.5 模板上安装 Docker

时间:2016-11-24 21:47来源:linux.it.net.cn 作者:IT

CentOS 6.5 模板上使用Docker
首先,通过 ssh 登陆阿里云的服务器,查看系统版本号以及内核版本。

Welcome to aliyun Elastic Compute Service!
# 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
# uname -a
Linux xxxxxxx 2.6.32-431.23.3.el6.x86_64 #1 SMP Thu Jul 31 17:20:51 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
升级内核
因为 Docker 推荐使用 3.8 以上内核,所以我们选择使用 YUM 方式来升级内核。

导入 KEY ,安装软件源。在 YUM 的 ELRepo 源中,有 mainline(3.13.1)、long-term(3.10.28)这 2 个内核版本,考虑到 long-term 更稳定,会长期更新,所以选择这个版本。

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# yum --enablerepo=elrepo-kernel install kernel-lt -y
Loaded plugins: security
base                                                                                                                          | 3.7 kB    00:00
base/primary_db                                                                                                              | 4.6 MB    00:00
elrepo                                                                                                                        | 2.9 kB    00:00
elrepo/primary_db                                                                                                            | 709 kB    00:46
elrepo-kernel                                                                                                                | 2.9 kB    00:00
elrepo-kernel/primary_db                                                                                                      |  20 kB    00:01
epel                                                                                                                          | 4.4 kB    00:00
epel/primary_db                                                                                                              | 6.3 MB    00:01
extras                                                                                                                        | 3.4 kB    00:00
extras/primary_db                                                                                                            |  29 kB    00:00
updates                                                                                                                      | 3.4 kB    00:00
updates/primary_db                                                                                                            | 181 kB    00:00
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package kernel-lt.x86_64 0:3.10.59-1.el6.elrepo will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=====================================================================================================================================================
 Package                        Arch                        Version                                      Repository                          Size
=====================================================================================================================================================
Installing:
 kernel-lt                      x86_64                      3.10.59-1.el6.elrepo                        elrepo-kernel                        33 M

Transaction Summary
=====================================================================================================================================================
Install      1 Package(s)

Total download size: 33 M
Installed size: 153 M
Downloading Packages:
kernel-lt-3.10.59-1.el6.elrepo.x86_64.rpm                                                                                    |  33 MB    28:58
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing : kernel-lt-3.10.59-1.el6.elrepo.x86_64                                                                                            1/1
  Verifying  : kernel-lt-3.10.59-1.el6.elrepo.x86_64                                                                                            1/1

Installed:
  kernel-lt.x86_64 0:3.10.59-1.el6.elrepo

Complete!
vi /etc/grub.conf 修改默认的启动内核,新安装的内核一般在第一个,这里把default = 1 改为 default = 0 就好了。

default=1
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (3.10.59-1.el6.elrepo.x86_64)
        root (hd0,0)
        kernel /boot/vmlinuz-3.10.59-1.el6.elrepo.x86_64 ro root=UUID=94e4e384-0ace-437f-bc96-057dd64f42ee rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /boot/initramfs-3.10.59-1.el6.elrepo.x86_64.img
title CentOS (2.6.32-431.23.3.el6.x86_64)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.32-431.23.3.el6.x86_64 ro root=UUID=94e4e384-0ace-437f-bc96-057dd64f42ee rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /boot/initramfs-2.6.32-431.23.3.el6.x86_64.img
~
重启云主机,查看内核是否升级成功。

# uname -a
Linux xxxxxxx 3.10.59-1.el6.elrepo.x86_64 #1 SMP Thu Oct 30 23:46:31 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
安装 Docker
安装软件源,安装 Docker 软件。

# yum install http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm
# yum install docker-io
启动 Docker
安装平常的方法启动 Docker 之后,发现仍然提示有问题。

# service docker start
Starting cgconfig service:                                [  OK  ]
Starting docker:                                          [  OK  ]
# docker version
Client version: 1.2.0
Client API version: 1.14
Go version (client): go1.3.3
Git commit (client): fa7b24f/1.2.0
OS/Arch (client): linux/amd64
2014/11/05 21:03:08 Cannot connect to the Docker daemon. Is 'docker -d' running on this host?
使用 docker -d 来查看详细的启动过程。

# docker -d
2014/11/05 21:10:56 docker daemon: 1.2.0 fa7b24f/1.2.0; execdriver: native; graphdriver:
[40a2dcc2] +job serveapi(unix:///var/run/docker.sock)
[info] Listening for HTTP on unix (/var/run/docker.sock)
[40a2dcc2] +job init_networkdriver()
[40a2dcc2.init_networkdriver()] creating new bridge for docker0
Could not find a free IP address range for interface 'docker0'. Please configure its address manually and run 'docker -b docker0'
[40a2dcc2] -job init_networkdriver() = ERR (1)
2014/11/05 21:10:56 Could not find a free IP address range for interface 'docker0'. Please configure its address manually and run 'docker -b docker0'
提示我们没有空余 ip 分配给 docker0 了。

那我们就使用 --bip 参数来手工分配给 ip 地址。比如:

# docker --bip=192.168.100.1/24 -d &
[2] 2388
[root@iZ23pznlje4Z ~]# 2014/11/05 21:16:55 docker daemon: 1.2.0 fa7b24f/1.2.0; execdriver: native; graphdriver:
[dc6906e7] +job serveapi(unix:///var/run/docker.sock)
[info] Listening for HTTP on unix (/var/run/docker.sock)
[dc6906e7] +job init_networkdriver()
[dc6906e7] -job init_networkdriver() = OK (0)
2014/11/05 21:16:55 WARNING: Your kernel does not support cgroup swap limit.
[info] Loading containers:
[info] : done.
[dc6906e7] +job acceptconnections()
[dc6906e7] -job acceptconnections() = OK (0)
这里提示警告 Your kernel does not support cgroup swap limit.,我们可以使用 lxc-checkconfig 来检查。

# lxc-checkconfig
Kernel configuration not found at /proc/config.gz; searching...
Kernel configuration found at /boot/config-3.10.59-1.el6.elrepo.x86_64
--- Namespaces ---
Namespaces: enabled
Utsname namespace: enabled
Ipc namespace: enabled
Pid namespace: enabled
User namespace: missing
Network namespace: enabled
Multiple /dev/pts instances: enabled

--- Control groups ---
Cgroup: enabled
Cgroup clone_children flag: enabled
Cgroup device: enabled
Cgroup sched: enabled
Cgroup cpu account: enabled
Cgroup memory controller: enabled
Cgroup cpuset: enabled

--- Misc ---
Veth pair device: enabled
Macvlan: enabled
Vlan: enabled
File capabilities: enabled

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

测试使用
由于 Aliyun 的网络直接 pull 官方镜像也不是很稳定,这里推荐使用linuxidc.com 官方网站的标准ubuntu镜像来测试。

下载镜像,重新标记镜像。

# docker pull dl.linuxidc.com.com:5000/ubuntu:14.04
# docker images
REPOSITORY                      TAG                IMAGE ID            CREATED            VIRTUAL SIZE
dl.linuxidc.com.com:5000/ubuntu  latest              5506de2b643b        12 days ago        197.8 MB
# docker tag 550 ubuntu
# docker rmi dl.linuxidc.com.com:5000/ubuntu
[dc6906e7] +job image_delete(dl.linuxidc.com.com:5000/ubuntu)
[dc6906e7] +job log(untag, 5506de2b643be1e6febbf3b8a240760c6843244c41e12aa2f60ccbb7153d17f5, )
[dc6906e7] -job log(untag, 5506de2b643be1e6febbf3b8a240760c6843244c41e12aa2f60ccbb7153d17f5, ) = OK (0)
[dc6906e7] -job image_delete(dl.linuxidc.com.com:5000/ubuntu) = OK (0)
Untagged: dl.linuxidc.com.com:5000/ubuntu:latest
启动容器,并测试网络。

# docker run -ti ubuntu
root@66ff9a55a4f5:/# ping www.linuxidc.com.com
PING www.linuxidc.com.com (xxx.xxx.xxx.xxx) 56(84) bytes of data.
^C64 bytes from 203.195.193.251: icmp_seq=1 ttl=47 time=31.4 ms




(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容