很多文档,但我仍然遗漏了一些东西。我的目标是运行一次性注册表(2.0)推送到它的几个图像并导出\提交容器。 我需要把它放在zip文件中,不用上网就可以了。
事情是 - 我没有保留推送到注册表的图像。每当我导入regsitry进行测试时 - 它都是空的。我知道commit \ export对挂载的卷不起作用 - 如何“禁用”初始注册表docker的卷?
答案 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和图像也将在容器销毁和重新启动后继续存在。