在OpenVZ VPS上安装Docker

时间:2015-12-26 16:02:05

标签: docker centos openvz

我有一个OpenVZ VPS,操作系统是CentOS 6,我尝试安装Docker,但是Docker启动错误。

\documentclass{article}
\begin{document}

<< label=Test, echo=FALSE >>=
library(noamtools)
# help_console(topic="mean", format = "latex")
help_console(topic="mean", format = "Rd")
@ 

\end{document}

2 个答案:

答案 0 :(得分:24)

2016年12月更新。我尽量不复制@Alien Life Form答案,但添加了更多详细信息。

简短回答

在大多数情况下,OpenVZ托管将使用OpenVZ 6和一个与Docker不兼容的过时内核。

Docker仅支持OpenVZ 7(基于3.x内核,请参阅https://openvz.org/Docker_inside_CT_vz7)或OpenVZ 6支持内核版本042stab105.4或更新版本(请参阅https://openvz.org/Docker_inside_CT)。

答案很长

Docker需要Linux内核的两个功能才能运行:控制组和命名空间。所以你需要一个具有这些功能的内核。

使用OpenVZ,您无法控制内核,只有托管公司才能控制您的内核。大多数托管公司都不会协作和更新内核,所以如果内核变得不兼容,你通常会运气不好。

OpenVZ 7基于3.10内核,支持开箱即用的Docker,但我还没有看到OpenVZ 7托管 - KVM似乎是最受欢迎的虚拟化,新的低成本提供商进入市场。

OpenVZ 6在较旧的提供程序中更常见,并且基于通常与Docker不兼容的2.6内核。但是,OpenVZ内核不是普通的2.6内核,但很少有从3.x内核反向移植的功能。所以实际上内核042stab105.4以及后来支持Docker根据官方OpenVZ wiki所需的功能(参见@Alien Life Form答案)。

以下文字仅适用于OpenVZ第6版。

如果uname -a显示内核042stab105.4或更高版本 - 您可以使用Docker进行一些调整来安装所需的特殊文件系统。

如果它更老并且公司愿意合作,他们就无法安装主线内核,因为它与OpenVZ不兼容。他们必须使用https://openvz.org/Download/kernel的OpenVZ补丁安装特殊内核。最好是最新的稳定版本(写作时为042stab120.11),但至少为042stab105.4。相比之下,我见过的所有OpenVZ主机都有类似2.6.32-042stab075.2的东西,它不仅与Docker不兼容,而且容易受到攻击。因此,您可以尝试使用漏洞参数来强制支持升级:)

另一个明显但并不总是适用的解决方案是从OpenVZ转移到使用其他虚拟化技术(如Xen或KVM)的托管。但是,主线CentOS 6内核可能没有必要的功能,因此当使用非库存补丁内核运行时,CentOS 6只能与Docker兼容。所以你也可以考虑转移到CentOS 7。

答案 1 :(得分:1)

旧线程 - 然而,解决方案可以通过将CentOS6视为此链接中的debian wheezy来找到:https://openvz.org/Docker_inside_CT

基本上,在/etc/init.d/docker中执行:

prestart() {
# ALF   service cgconfig status > /dev/null
# ALF
# ALF    if [[ $? != 0 ]]; then
# ALF        service cgconfig start
# ALF    fi
mount -t tmpfs tmpfs /sys/fs/cgroup
mkdir /sys/fs/cgroup/freezer,devices
mount -t cgroup cgroup /sys/fs/cgroup/freezer,devices -o freezer,devices
mkdir /sys/fs/cgroup/cpu,cpuacct,cpuset
mount -t cgroup cgroup /sys/fs/cgroup/cpu,cpuacct,cpuset/ -o cpu,cpuacct,cpuset

}