当前位置:首页 > CN2资讯 > 正文内容

docker 停止服务 swa docker停止维护

4天前CN2资讯







缘起

在Docker实践中,很多人应该都遇到过开机重启时,由于Docker守护程序在占用多核CPU使用100%C使用的情况,此时所有容器都无法正常工作,所有服务都不能用。很悲催的是这事儿虫虫也遇到了,之前虫虫利用Docker重构WP博客的新架构(http://ijz.me)。由于VPS机器不是很稳定,时常会重启,重启时候就会遇到这个事情,VPS负载很高,容器都没有起来,网站就无法访问了。解决唯一方法只能杀掉所有容器并重启守护进程,才能恢复。经过了解该问题是由于Docker守护进程引起,而且Docker守护进程是以root特权权限启动的,是一个安全问题,那么有什么方法解决呢?本文介绍一下基于CRI 等标准(Docker新架构也符合CRI标准)的新一代容器工具Podman、Skopero和Buiddah套件。

OCI计划和Podman

为了防止容器被Docker一家垄断,巨头们(谷歌,Redhat、微软、IBM、Intel、思科)聚在一起喝了一个茶(有可能是铁观音,也可能是龙井)决定要成立一个组织(OCI),大家一起商量指定了一套规范(CRI、CNI),大家一致统一只兼容(喝铁观音)符合这套规范的工具。Docker虽然心有不甘但是毕竟胳膊拧不过大腿,只能该架构兼容规范(打了牙往肚里咽)。

在该规范的指导下就有了本文的三个主人公,这三个工具都是符合OCI计划下的工具(https:///containers)。他们主要是由RedHat推动,三者各司其职,配合完成Docker所有的功能和新扩展功能,并且对docker的问题进行了改良:包括不需要守护程序或访问有root权限的组;容器架构基于fork/exec模型创建容器,更加安全可靠;所以是更先进、高效和安全的下一代容器容器工具。

Podman



Podman是该工具套件的核心,用来替换Docker中了大多数子命令(RUN,PUSH,PULL等)。Podman无需守护进程,使用用户命名空间来模拟容器中的root,无需连接到具有root权限的套接字保证容器的体系安全。
Podman专注于维护和修改OCI镜像的所有命令和功能,例如拉动和标记。它还允许我们创建,运行和维护从这些镜像创建的容器。

Buildah

Buildah是套件中的Build工具,用来构建OCI镜像。虽然Podman也可以用户构建Docker镜像,但是构建速度超慢,并且默认情况下使用vfs存储驱动程序会消耗大量磁盘空间。 而buildah bud(使用Dockerfile构建)非常快,并使用覆盖存储驱动程序,可以节约大量的空间。



Buildah专注于构建OCI镜像, Buildah的命令复制了Dockerfile中的所有命令。可以使用Dockerfiles构建镜像,并且不需要任何root权限。 Buildah的最终目标是提供更低级别的coreutils界面来构建镜像。Buildah也支持非Dockerfiles构建镜像,通过自有的语法规范来创建编译可以允许将其他脚本语言集成到构建过程中。下面是Buidah自有构建脚本部分:



可见语法非常清晰熟悉,比Dockerfiles人性化多了。

和Podman一样Buildah遵循简单的fork-exec模型,无需以守护进程运行,但它基于golang中的综合API提供接口,可以方便的打包到其他工具中。

Skopeo

Skopeo是套件中镜像管理工具,允许我们通过推,拉和复制镜像来处理Docker和OC镜像。



三个工具对比

Buildah构建容器,Podman运行容器,Skopeo传输容器镜像。这些通过在Github容器组织维护和开源。套件下的工具都无需运行守护进程,并且大多数情况下也不需要root访问权限。
Podman和Buildah之间的一个主要区别是他们的容器概念。 Podman可允许用户创建"传统容器"。Buildah容器作用是给容器添加一些特有的内容而构建容器,Buildah容器是过程容器,编译完成就消失,不能用来跑服务 。简而言之,buildah run命令模拟Dockerfile中的RUN命令,而podman run命令则模拟功能中的docker run命令。
总之,Buildah是创建OCI镜像的有效方式,而Podman允许我们使用熟悉的容器cli命令在生产环境中管理和维护这些镜像和容器。

容器迁移

套件安装
各大Linux发行版都提供了二进制安装包, 可以使用发行版的系统包管理工具一键安装:


Fedora, CentOS:sudo yum -y install podman Arch & Manjaro Linux: sudo pacman -S podman


Ubuntu不支持一键安装,需要先添加第三方私有ppa仓库:


sudo apt-get update -qq sudo apt-get install -qq -y software-properties-common uidmap sudo add-apt-repository -y ppa:projectatomic/ppa sudo apt-get update -qq sudo apt-get -qq -y install podman


实践迁移

安装了套件的三个工具后,就可以对docker实例进行迁移了。

1、替换cron或者CI作业(脚本)中的所有docker实例,把docker替换为podman,可以使用后面提到的别名的方式。

2、停止和删除所有的运行的docker。

为了确保没有有差错,可以使用sysdig来捕获系统中docker的引用,看看是否还有其他东西在调用docker。
3、删除docker

现在就可以删除docker了:


yum remove docker 或者 apt remove -y docker-ce


当然虫虫教你一招更绝的,那就是用别名:


alias docker = podman


4、环境清理

最后清理下dock文件,我们建个一目录docker备份目录,把以下目录mv到备份目录即可:/etc/docker/*/etc/default/docker/var/lib/ docker中的任何遗留文件

删除docker组


delgroup docker


总结

本文介绍了符合CIR标准的 cri-o 容器套件Podman,Skopeo和Buildah。该新一代容器套件架构基于*nix传统的fork-exec模型,解决了由于docker守护程序导致的启动和安全问题,提提高了容器的性能和安全。

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/18889.html

    分享给朋友:

    “docker 停止服务 swa docker停止维护” 的相关文章

    香港云电脑:灵活、高效、经济的现代计算解决方案

    香港云电脑概述 香港云电脑,是基于云计算技术的一种崭新电脑服务模式。其实你可以把它想象成一种“租赁”的概念。我们不需要像以前那样花大价钱去购买实体电脑,而是可以通过网络租用需要的计算、存储和软件资源,与此同时,拥有几乎完整的电脑功能。这种模式的好处多多,包括灵活性、低成本、高效性以及可扩展性。无论是...

    PumpCloud VPS主机服务解析:注册、设置与价格一站式指南

    PumpCloud是一家自2015年成立以来便致力于提供高效主机服务的公司,让我来分享下其中的一些亮点。它主要在香港和台湾设有数据中心,专注于为用户提供动态VPS服务。相比于国内一些主机商,PumpCloud显得更国际化,主要通过其快速的网络连接和强大的服务基础设施吸引用户。虽然在行业中还算年轻,但...

    选择野草云主机服务,享受高性价比与优质体验

    野草云是一家在2016年成立的主机服务提供商,由国人运营,专注于为中国大陆地区的用户提供优质的服务和产品。作为一家相对年轻的主机商,野草云力求用更贴近用户的方式来满足客户需求,特别是在国内市场需求快速增长的背景下,它的出现让很多用户找到了合适的主机选择。 说到野草云的历史背景,首先让我想起它在竞争激...

    Ubuntu 多人远程办公的安装与配置指南

    安装和配置远程桌面软件 在远程办公和团队协作日益成为常态的今天,合理配置远程桌面软件显得尤为重要。在Ubuntu的环境下,安装和配置xrdp和vncviewer等工具,可以让多个用户方便地进行远程访问,提高工作效率。下面,我将一步步带你进行相关的软件安装和配置。 1. 安装xrdp 首先,我们要安装...

    香港低价服务器:经济实惠的选择与优势解析

    在如今数字化迅猛发展的时代,香港低价服务器凭借其独特优势,吸引了无数创业者、站长和企业用户的青睐。何为香港低价服务器?这类服务器主要是指在香港地区提供的,价格相对较低的服务器租用服务。由于其经济实惠的特性,许多小型企业和个人用户在选择服务器时,都会优先考虑这种选项。 在选择网络服务时,速度和价格往往...

    deb包安装方法与依赖关系管理完全指南

    在开始讨论deb包之前,先来了解一下它的定义与结构。deb包是Debian及其衍生Linux发行版(如Ubuntu)中用于软件分发的一种格式。简单来说,deb包就像是一个小的文件夹,里面包含了安装一个程序所需的所有文件和信息。这些文件包括程序本身、相关的配置文件、以及它对其他软件包的依赖信息。结构上...