Docker \使用其数据提交容器

时间:2016-03-01 08:56:29

标签: docker docker-registry

很多文档,但我仍然遗漏了一些东西。我的目标是运行一次性注册表(2.0)推送到它的几个图像并导出\提交容器。 我需要把它放在zip文件中,不用上网就可以了。

事情是 - 我没有保留推送到注册表的图像。每当我导入regsitry进行测试时 - 它都是空的。我知道commit \ export对挂载的卷不起作用 - 如何“禁用”初始注册表docker的卷?

1 个答案:

答案 0 :(得分:2)

我宁愿建议您将图像(注册表v2)与传输数据分离,方法是单独复制所需的图像,然后在运行时将它们安装到注册表容器中。

有点像这样:

在准备注册表的计算机上,使用

之类的东西运行注册表容器
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

Untar / Unzip /无论图像存档是什么,再次使用与上面类似的运行命令再次运行注册表,将图像存档解压缩的目录作为-v之后的第一个路径。

使用此技术,您的注册表中的repos和图像也将在容器销毁和重新启动后继续存在。