dynamicDockerregistry

我想分发一些扔掉的docker图像(图像,只开始一次,直接删除)。 为了实现这一点,我必须能够将我的docker图像推送到其他主机可以从中拖出的dockerregistry。 其他docker主机拉取这个图像,运行它,并在终止后将其删除。

不幸的是(afaik)没有简单的方法从私有dockerregistry中删除图像。

有没有一种简单的方法来启动一个一次性dockerregistry,我可以使用分配? 有没有办法接受任何不安全的registry?

到目前为止,我总是必须通过以下--insecure-registry来configuration不安全的registry:– --insecure-registry

有没有可能的select来分发docker的图像,而不使用dockerregistry?

当然,有几种方法可以分发图像。 我应该提到的最重要的事情可能是build立一个registry(特别是由发行团队支持的最新版本的“v2registry”) 是一种痛苦 。 这并不难,而且比第一版的registry(旧的python项目)要早几年,但是这并不是你想要解决这个问题的东西,尤其是在你寻找一个快速简单的解决scheme的时候。

所以,你剩下的分发图像或容器作为压缩档案。 有两组命令可以在这里使用,并有一些小的(但重要的)区别。 首先,让我们看看只传输图像,而不是容器。 所以为此,您将使用docker save主机上的docker save ,然后将tarball传输到目标机器,然后使用docker load从tarball创build一个映像。 例如,在主机上:

 docker save --output myImage.tar myImage:latest 

然后你可以rsyncsftp (或其他)将myImage.tar tarball传输到你的目标机器上。 然后在那个主机上:

 docker load --input myImage.tar 

这很简单,但假设你有一个容器从你想要传输的图像中运行。 问题是你可以传输图像,但是它会在启动后丢失对图像文件系统所做的所有更改。 解决这个问题的方法是使用docker exportdocker import 。 这将把所有的中间变化和基本文件系统镜像一起保存到文件系统中。

所以,你将在你的docker主机上使用docker export命令,当然还有你的目标机器上的docker import 。 和另一个例子一样,你需要将docker export生成的tar包传输到目标机器上。 例如,在docker主机上:

 docker export myContainer > myContainer.tar 

然后在目标机器上,在将myContainer.tar传递给它之后:

 cat myContainer.tar | docker import - jotschi/myContainerImage 

现在你已经在目标上有一个叫做jotschi/myContainerImage的图像,然后你可以从下面创build一个容器:

 docker run -d --name=myContainer -p 80:80 jotschi/myContainerImage