欢迎光临
我们一直在努力

在 CentOS 6.5上安装 docker

Docker是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。利用Linux的LXC、AUFS、Go语言、cgroup实现了资源的独立,可以很轻松的实现文件、资源、网络等隔离,其最终的目标是实现类似PaaS平台的应用隔离。

Docker值得关注的特性:

文件系统隔离:每个进程容器运行在一个完全独立的根文件系统里。

资源隔离:系统资源,像CPU和内存等可以分配到不同的容器中,使用cgroup。

网络隔离:每个进程容器运行在自己的网络空间,虚拟接口和IP地址。

日志记录:Docker将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索。

变更管理:容器文件系统的变更可以提交到新的映像中,并可重复使用以创建更多的容器。无需使用模板或手动配置。

交互式shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上,例如运行一个一次性交互的shell。

Docker通常用于如下场景:

  1. web应用的自动化打包和发布;
  2. 自动化测试和持续集成、发布;
  3. 在服务型环境中部署和调整数据库或其他的后台应用;
  4. 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境

本文下面将在Centos 6.5的基础之上进行docker的安装和简单的测试应用

在 CentOS 6.5 上安装 docker

docker当前官方只支持Ubuntu,所以在 CentOS 安装Docker比较麻烦。

docker官方文档说要求Linux kernel至少3.8以上,CentOS 6.4是2.6的内核,且docker只能运行在64位的系统中,因此必须要先升级内核。

1.1 取消selinux激活状态,因为它会干扰lxc的正常功能

vim /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted

1.2 安装 Fedora EPEL

yum install -y http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

1.3 添加 hop5 repo地址升级内核

cd /etc/yum.repos.d
wget http://www.hop5.in/yum/el6/hop5.repo
yum install -y kernel-ml-aufs kernel-ml-aufs-devel #yum安装带aufs模块的3.10内核

1.4 修改grub的主配置文件/etc/grub.conf,设置default=0,表示第一个title下的内容为默认启动的kernel(一般新安装的内核在第一个位置)。

# cat /etc/grub.conf 
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/mapper/vg_love-lv_root
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
<strong>default=0    ######只修改此处,让其从第一个title进行启动引导######
timeout=3
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (3.10.5-3.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-3.10.5-3.el6.x86_64 ro root=/dev/mapper/vg_love-lv_root rd_NO_LUKS rd_LVM_LV=vg_love/lv_root rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_LVM_LV=vg_love/lv_swap  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /initramfs-3.10.5-3.el6.x86_64.img
title centos (2.6.32-431.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vg_love-lv_root rd_NO_LUKS rd_LVM_LV=vg_love/lv_root rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_LVM_LV=vg_love/lv_swap  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /initramfs-2.6.32-431.el6.x86_64.img
</strong>

重启系统,查看内核版本

#reboot
...
#uname -r
3.10.5-3.el6.x86_64
# grep aufs /proc/filesystems  #查看是否支持aufs文件系统
nodev   aufs                   #显示为支持

1.5 安装 docker-io

yum -y install docker-io

如果出现日下错误:

http://www.hop5.in/yum/el6/repodata/repomd.xml: [Errno 14] PYCURL ERROR 6 - "Couldn't resolve host 'www.hop5.in'"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: hop5. Please verify its path and try again

则需要修改dns,我这里使用的是四川电信的dns服务器正常

cat /etc/reslov.conf
nameserver 61.139.2.69

之后会自动安装docker-io包。

1.6 启动 docker daemon 进程

service docker start
chkconfig docker start

如果docker启动失败或者启动报错:
time=”2015-02-12T14:37:28+08:00″ level=”info” msg=”+job serveapi(unix:///var/run/docker.sock)”
time=”2015-02-12T14:37:28+08:00″ level=”info” msg=”WARNING: You are running linux kernel version 2.6.32-431.el6.x86_64, which might be unstable running docker. Please upgrade your kernel to 3.8.0.”
/usr/bin/docker: relocation error: /usr/bin/docker: symbol dm_task_get_info_with_deferred_remove, version Base not defined in file libdevmapper.so.1.02 with link time reference
解决方法是:

#升级包device-mapper-libs
yum upgrade device-mapper-libs

1.7 下载 centos镜像

docker pull centos

1.8 运行 hello icesr.com

docker run centos /bin/echo hello icesr.com
hello icesr.com

安装测试成功了!!
想了解更多docker的高级应用请持续关注冰点网络!

未经允许不得转载:SRE空间 » 在 CentOS 6.5上安装 docker

分享到:更多 ()

评论 1

评论前必须登录!

 

  1. #1

    docker是一个好东西哦! :razz:

    匿名10年前 (2015-02-12)

oracle