`
mazilaidaige
  • 浏览: 966 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

在Redhat/Centos下安装Docker(不升级内核)

 
阅读更多

本文系转载,原文出自 “说话的白菜” 博客,出处http://speakingbaicai.blog.51cto.com/5667326/1353183

 

由于内核版本问题,最初仅ubuntu可以较好的支持Docker。不过,由于Redhat系列OS(REHL、Centos)是目前主流的Linux服务器操作系统,所以令Redhat系列OS支持Docker很有必要。目前Docker和Redhat已经展开深入合作,并在2013年年底推出了可以在Redhat系列OS上运行的Docker0.7。

   目前有一些博客介绍了如何在centos上安装Docker,例如http://www.yanjiuyanjiu.com/blog/20131025/。但是这些博客都是针对老版本的Docker,安装方法是在升级操作系统内核版本的基础上完成。问题是,我们不可以随意升级生产环境的操作系统内核版本,而且Docker0.7的主旨就是:Docker使用者可以在不升级内核的前提下,在Redhat环境这使用Docker。因此,这里撰写一篇博客,介绍如何在Redhat/Centos环境下,安装新版本的Docker。

 

一、禁用selinux

   由于Selinux和LXC有冲突,所以需要禁用selinux。编辑/etc/selinux/config,设置两个关键变量。    

1
2
SELINUX=disabled
SELINUXTYPE=targeted

 

二、配置Fedora EPEL源

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

 

三、添加hop5.repo源

 

1
2
cd /etc/yum.repos.d
sudo wget http://www.hop5.in/yum/el6/hop5.repo

 

四、安装Docker

1
sudo yum install docker-io

  图1是yum安装过程中的截图,可以发现安装的软件只有docker和lxc相关包,没有内核包,例如kernel-ml-aufs。

wKioL1Lc1frT0gOXAAFfLfyxcvc660.jpg

图1 yum install docker-io输出截图

 

五、初步验证docker

  输入docker -h,如果有如下输出,就证明docker在形式上已经安装成功。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# docker -h
Usage of docker:
  -D=false: Enable debug mode
  -H=[]: Multiple tcp://host:port or unix://path/to/socket to bind in daemon mode, single connection otherwise
  -api-enable-cors=false: Enable CORS headers in the remote API
  -b="": Attach containers to a pre-existing network bridge; use 'none' to disable container networking
  -bip="": Use this CIDR notation address for the network bridge's IP, not compatible with -b
  -d=false: Enable daemon mode
  -dns=[]: Force docker to use specific DNS servers
  -g="/var/lib/docker": Path to use as the root of the docker runtime
  -icc=true: Enable inter-container communication
  -ip="0.0.0.0": Default IP address to use when binding container ports
  -iptables=true: Disable docker's addition of iptables rules
  -p="/var/run/docker.pid": Path to use for daemon PID file
  -r=true: Restart previously running containers
  -s="": Force the docker runtime to use a specific storage driver
  -v=false: Print version information and quit

 

六、手动挂载cgroup

   在redhat/centos环境中运行docker、lxc,需要手动重新挂载cgroup。

   我们首选禁用cgroup对应服务cgconfig。

1
2
sudo service cgconfig stop # 关闭服务
sudo chkconfig cgconfig off # 取消开机启动

   然后挂载cgroup,可以命令行挂载

1
mount -t cgroup none /cgroup # 仅本次有效

   或者修改配置文件,编辑/etc/fstab,加入

1
none /cgroup cgroup defaults 0 0 # 开机后自动挂载,一直有效

七、调整lxc版本

   Docker0.7默认使用的是lxc-0.9.0,该版本lxc在redhat上不能正常运行(具体情况可参见本人另一篇博客《Redhat下Docker、LXC、CGroup的协同配置》),需要调整lxc版本为lxc-0.7.5或者lxc-1.0.0Beta2。前者可以通过lxc网站(http://sourceforge.net/projects/lxc/files/lxc/)下载,后者需要在github上下载最新的lxc版本(https://github.com/lxc/lxc,目前版本是lxc-1.0.0Beta2)。

这里特别说明一点,由于Docker安装绝对路径/usr/bin/lxc-xxx调用lxc相关命令,所以需要将lxc-xxx安装到/usr/bin/目录下。

 

八、启动docker服务

1
2
sudo service docker start # 启动服务
sudo chkconfig docker on  # 开机启动

 

九、试运行

1
sudo docker run -i -t ubuntu /bin/echo hello world

  初次执行此命令会先拉取镜像文件,耗费一定时间。最后应当输出hello world。

 

参考

Docker官方文档 http://docs.docker.io/en/latest/installation/rhel/

http://www.yanjiuyanjiu.com/blog/20131025/

http://www.oschina.net/translate/nstalling-dockerio-on-centos-64-64-bit

分享到:
评论

相关推荐

    Docker学习之CentOS 7安装配置

    建议在 RedHat/CentOS 7 上使用 Docker,因为 RedHat/CentOS 7 的内核升级到了 kernel 3.10,对 lxc 容器支持更好。安装 Docker 需要先更新 YUM 源,然后安装 Docker。 4. 启动 Docker 服务: 安装完成后,使用...

    docker-1.7.1 rpm包

    redhat6.5 centos6.5 安装 docker 1.7.1 rpm安装包 CentOS/RedHat 6.5 离线安装Docker(不升级内核)

    CentOS 7 安装 Docker

    Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。 Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为2.6.32-431 或者更高版本 查看系统的内核: [root@...

    mesos集群在centos部署文档.pdf

    2. **安装依赖**:在安装 Docker 之前,需要先安装 `libcgroup`,运行 `yum install libcgroup -y`。 3. **安装 Docker**:使用 `rpm -ivh docker-engine-1.7.1-1.el6.x86_64.rpm` 进行安装。 4. **启动 Docker**:...

    云计算技术Zstack实践-搭建Docker.pptx

    【云计算技术Zstack实践-搭建Docker】 在现代IT领域,云计算技术和应用实践扮演着至关重要的角色,...通过内核升级和Docker的安装,用户能够在Zstack环境中充分利用Docker的优势,实现更加敏捷和高效的IT服务交付。

    V100 机器 CUDA 环境和docker GPU 安装

    在安装前,先确保没有任何旧的NVIDIA驱动存在,可以通过`lspci | grep -i nvidia`查看显卡型号,`rpm -qa|grep -i nvid|sort`列出所有相关rpm包,然后使用`yum remove kmod-nvidia-*`和`yum remove "*nvidia*"`卸载...

    Docker完整RPM安装包

    资源内有安装教程。本操作系统为:Red Hat Enterprise Linux Server release 7.2 (Maipo)。内核版本为:3.10.0-327.el7.x86_64。亲测可用。已经在内网部署~

    Docker16 安装包

    Docke16安装包:Linux Redhat6、Centos6(内核2.6以上)适用,附带安装命令,详细查看包中的readme文件

    RHEL7.2和7.4版本对比

    此外,在存储和文件系统方面也有了显著的进步,支持NVMe Over Fabrics使得RHEL在处理大规模数据集和高性能计算场景下更具竞争力。虚拟化能力的增强,特别是对Elastic Network Adapter (ENA) 的支持,使得RHEL 7.4在...

    Linux服务器操作系统

    6. **软件包管理**:理解包管理器的作用,如dpkg和apt(Debian/Ubuntu)或yum和dnf(RHEL/CentOS),以及如何安装、升级和卸载软件。 7. **Shell脚本编程**:基础的bash脚本编写技巧,如何自动化执行日常管理任务。...

    Linux使用.pdf

    在Linux系统中,理解文件目录结构至关重要,例如根目录/下包含usr、var、etc等子目录,分别存放系统程序、变量文件和配置文件。账号和用户组管理涉及到权限控制,通过adduser、usermod、groupadd等命令可以创建和...

    .Net提高班 - linux课件 .pdf

    2. 多种发行版:基于Linux内核,许多公司和个人创建了不同的Linux发行版(Distribution),如RedHat、CentOS、Debian、Ubuntu等。这些发行版之间在软件包管理、预装软件和用户界面等方面有所区别。 3. 命令行操作:...

    使用Kubeadm在CentOS7.2上部署Kubernetes集群的方法

    本文参考kubernetes官网文章Installing Kubernetes on Linux with kubeadm在CentOS7.2使用Kubeadm部署Kuebernetes集群,解决了一些在按照该文档部署时遇到的问题。 操作系统版本 # cat /etc/redhat-release CentOS...

    狂神说Linux课堂笔记.pdf

    而对于后端开发而言,掌握Linux下Java、Tomcat和Docker的安装和部署也是必要的技能。 综上所述,这篇狂神说Linux课堂笔记是对那些打算从事Java全栈开发者的Linux学习指南。它不仅提供了Linux的理论知识,还结合实际...

    容器技术-linux系统.pptx

    Docker是最知名的容器技术之一,它构建在这些Linux内核特性之上,提供了一个方便的接口来创建、部署和运行容器。 总之,Linux系统因其开源、高性能、稳定性和安全性等优点,成为了容器技术的核心。通过Linux内核的...

    2021年Linux系统工程师的职责模板.pdf

    4. **操作系统知识**:熟悉主流Linux发行版,如RedHat Enterprise Linux、CentOS、Ubuntu、Debian,以及Windows服务器的安装、配置和使用是基本要求。 5. **自动化工具**:掌握pxe、kickstart、cobbler等无人值守...

Global site tag (gtag.js) - Google Analytics