当前位置:  开发笔记 > 运维 > 正文

在OpenVZ VPS上安装Docker

如何解决《在OpenVZVPS上安装Docker》经验,为你挑选了1个好方法。

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

Starting cgconfig service: Error: cannot mount cpuset to /cgroup/cpuset: Invalid argument
/sbin/cgconfigparser; error loading /etc/cgconfig.conf: Cgroup mounting failed
Failed to parse /etc/cgconfig.conf or /etc/cgconfig.d      [FAILED]
Starting docker:                                           [  OK  ]

nponeccop.. 27

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在较旧的提供程序中更常见,并且基于2.6通常与Docker不兼容的内核.但是,OpenVZ内核不是普通的2.6内核,但很少有3.x内核反向移植的功能.所以事实上内核042stab105.4和后来根据官方OpenVZ维基支持Docker所需的功能(参见@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不兼容,而且容易受到攻击.所以你可以尝试使用漏洞参数来强制支持升级:)

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



1> nponeccop..:

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在较旧的提供程序中更常见,并且基于2.6通常与Docker不兼容的内核.但是,OpenVZ内核不是普通的2.6内核,但很少有3.x内核反向移植的功能.所以事实上内核042stab105.4和后来根据官方OpenVZ维基支持Docker所需的功能(参见@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不兼容,而且容易受到攻击.所以你可以尝试使用漏洞参数来强制支持升级:)

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

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有