Docker是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。利用Linux的LXC、AUFS、Go语言、cgroup实现了资源的独立,可以很轻松的实现文件、资源、网络等隔离,其最终的目标是实现类似PaaS平台的应用隔离。
Docker值得关注的特性:
文件系统隔离:每个进程容器运行在一个完全独立的根文件系统里。
资源隔离:系统资源,像CPU和内存等可以分配到不同的容器中,使用cgroup。
网络隔离:每个进程容器运行在自己的网络空间,虚拟接口和IP地址。
日志记录:Docker将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索。
变更管理:容器文件系统的变更可以提交到新的映像中,并可重复使用以创建更多的容器。无需使用模板或手动配置。
交互式shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上,例如运行一个一次性交互的shell。
Docker通常用于如下场景:
- web应用的自动化打包和发布;
- 自动化测试和持续集成、发布;
- 在服务型环境中部署和调整数据库或其他的后台应用;
- 从头编译或者扩展现有的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
docker是一个好东西哦! :razz: