Docker \提交一个包含数据的容器

很多文档,但我仍然错过了一些东西。 我的目标是运行一次性registry(2.0)推到它的几个图像和导出\提交容器。 我需要把它在zip文件没有互联网机器。

事情是 – 我推送到registry的图像不被保留。 每当我inputregsitry来testing – 它是空的。 我明白,提交\导出将无法安装卷 – 如何“禁用”初始registrydocker的卷?

我宁愿build议你从传输的数据中分离图像(registry版本2),方法是单独复制所需的图像,然后在运行时将它们挂载到registry容器中。

有点像这样:

在机器上准备registry,使用类似的东西运行registry容器

docker run -d \ --name registry \ --restart=always \ -e SEARCH_BACKEND=sqlalchemy \ -e STORAGE_PATH=/srv/docker-registry \ -v /srv/data/docker-registry:/srv/docker-registry \ -p 127.0.0.1:5002:5000 \ registry:2.0.0 

然后将您的图像标记为localhost:5000 / repo-name / image-name并执行

 docker push localhost:5000/repo-name/image-name 

之后,tar / zip / whatever / srv / data / docker-registry并执行

 docker save -o ~/docker-registry-v2 registry:2.0.0 

将这两个存档复制到目标机器,

 docker load -i ~/docker-registry-v2 

解压缩/解压缩/无论图像存档和再次运行registry与上面类似的运行命令,提供您解压缩图像存档的目录作为后-v的第一个path。

使用这种技术,您的registry中的回购和图像也将在容器破坏和重启之后生存下来。