Tag: 运行

Windows docker上的Linux docker Runc的等价部分是什么?

原谅我,我刚开始学习了解Docker 。 据我所知, Docker过去依赖于LXC 。 然后去libcontainer 。现在它是Runc (从docker1.11)。 这是OCF (Open Container Format)的实现。 而且我也知道Runc只能在Linux上运行。 所以Runc是Linux Runc 。 我的问题是Windows Runc上的Linux Runc等价物是什么? 谢谢。

如何备份和恢复docker容器(没有原始docker运行命令)

我希望能够将一个容器状态“冻结”到一个文件中,然后在容器被意外删除的时候再恢复它。 这是为了防止意外的容器删除。 我试图docker export到一个tar文件,然后docker import ,但它会创build一个docker文件系统的图像 …不是容器本身。 我知道我可以使用这个镜像的docker run ,但我不是容器的创造者,我不知道最初是用什么命令来创build的。 我也尝试使用docker-runc从rootfs和config.json从/run/docker/libcontainerd/CONTAINER_ID/config.json重新创build容器,但是我发现这不是件容易的事情,我想要一个“不那么容易“的解决scheme。 目前,我所知道的唯一方法就是创buildDocker主机虚拟机的快照,如果有人不小心删除容器,请恢复快照。 但最后一次发生这种情况时,最后一次备份是在16小时之前完成的,而且之后我又丢失了所有创build的数据(恢复过程的时间也很长)。 我只是想将容器状态保存到一个文件中,并能够在删除的情况下重新创build它。

libcontainer,runc和nsenter bootstrap

我对docker/容器相当新,并试图通过查看代码来更好地理解它。 看看runC,它看起来像使用libcontainer很像旧的代码库中的nsinit,我试图用它作为了解如何使用libcontainer以及深入了解libcontainer如何工作的一个起点。 其中一个我觉得有点棘手的东西是引导程序和调用nsexec的C代码。 我广泛地理解,在调用应用程序(runC / libcontainer)可以将控制交给容器进程之前,需要对名称空间等进行一些初始化,但似乎无法find一个好的一步一步的解释。 有没有人知道这方面的好文档? 我是否正确地认为,作为这个引导过程的一部分,C代码会用“init”cmd行标志调用回runC(的clone / child)?

创build一个不会自动启动的runit服务

我正在开发一个基于Phusion的baseimage构build的Docker容器,这个容器需要有许多服务只需要启动。 我希望这些服务保持为runit服务,我只是希望它们不会在启动时自动启动。 从他们的文档中可以看出,你可以通过在/etc/service创build一个文件夹来使用你的服务名称,例如: /etc/service/jboss 。 接下来,您必须在名为run服务目录中创build并chmod +x文件,该文件将执行服务的启动。 我该如何做到这一点,并确保该服务不会在启动时启动? 目标仍然是能够做到sv start jboss ,但没有启动启动。

Docker和GO运行时

首先,我会称自己是一名C / C ++程序员。 我在Docker或Go上没有多年的经验。 因此,尽pipe我在Googlesearch上尽了最大的努力,但我的问题可能很愚蠢。 我的问题是Docker在运行时是否需要GO运行时。 我已经读过,docker本身是用GO编写的。 我可以看到一个GO编译器是构builddocker二进制文件所必需的。 比方说,我在构build机器上构builddocker二进制文件并进行远程分发。 例如,我在机器A上构build一个.deb docker包,并将其分发给用户的机器B,C,D,E和F.做B,C,D,E和F需要安装到运行我的docker? 如果docker是用C / C ++编写的,并且与DLL(s)链接,我会知道答案。 如果docker是用C / C ++编写的并且静态链接的话,我也会知道答案。 但是,我不太清楚GO程序是如何运行的,特别是docker程序需要什么。

容器如何比较runC

这两者如何比较? 据我所知,runC是一个容器的运行环境。 这意味着这个组件提供了运行容器的必要环境。 这里containerd的作用是什么呢? 如果剩下的(networking,卷pipe理等),那么Doc​​ker引擎的作用是什么? 那containerd-shim呢? 基本上,我试图了解每个组件的function。