1. 程式人生 > >阿裏雲cenos 6.5 模板上安裝 docker

阿裏雲cenos 6.5 模板上安裝 docker

enc comm starting parent cap tram arch download acc

本章將介紹在阿裏雲的 Centos6.5 模板上安裝 Docker 以及在 Ubuntu 14.04 模板上安裝 Docker 的過程

Centos 6.5 模板上使用Docker

首先,通過 ssh 登陸阿裏雲的server,查看系統版本號號以及內核版本號。

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
[[email protected] ~]# 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 官方鏡像也不是非常穩定,這裏推薦使用Dockerpool 官方站點的標準ubuntu鏡像來測試。

下載鏡像,又一次標記鏡像。

# docker pull dl.dockerpool.com:5000/ubuntu:14.04
# docker images
REPOSITORY                      TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
dl.dockerpool.com:5000/ubuntu   latest              5506de2b643b        12 days ago         197.8 MB
# docker tag 550 ubuntu
# docker rmi dl.dockerpool.com:5000/ubuntu
[dc6906e7] +job image_delete(dl.dockerpool.com:5000/ubuntu)
[dc6906e7] +job log(untag, 5506de2b643be1e6febbf3b8a240760c6843244c41e12aa2f60ccbb7153d17f5, )
[dc6906e7] -job log(untag, 5506de2b643be1e6febbf3b8a240760c6843244c41e12aa2f60ccbb7153d17f5, ) = OK (0)
[dc6906e7] -job image_delete(dl.dockerpool.com:5000/ubuntu) = OK (0)
Untagged: dl.dockerpool.com:5000/ubuntu:latest

啟動容器,並測試網絡。

# docker run -ti ubuntu
root@66ff9a55a4f5:/# ping www.dockerpool.com
PING www.dockerpool.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

阿裏雲cenos 6.5 模板上安裝 docker