gpt4 book ai didi

Docker 注册表镜像 - 持久性

转载 作者:行者123 更新时间:2023-12-02 18:20:49 28 4
gpt4 key购买 nike

我已经创建了 docker private registry 并且能够从同一网络中的其他 raspi 推送和拉取(将 registry ip 添加到 insecure-registry 选项)

docker push registry-ip:5000/image

但是当我的注册表服务器机器重新启动时,我无法看到存储库镜像,我需要再次将镜像推送到注册表主机:

curl -v registry-server-ip:5000/v2/_catalog

什么都不返回

为什么会这样?它应该是持久的,并且应该在注册表中保留图像,因为它存储在 docker 图像中

可以处理这种情况的任何解决方法或任何配置

================更新============================

Docker-Compose.yml

version: '3.4'
services:
service1:
image: ${REGISTRY_SERVER_IP}:5000/service1
build: .
restart: always
deploy:
mode: global
restart_policy:
condition: on-failure
ports:
- 3632:3632
entrypoint:
- init.sh

init.sh 只是运行一些服务器的脚本
Dockerfile 具有带有一些 apt-get install update 命令的基础镜像

我正在运行这个脚本:1. 创建注册服务器

docker service create --name registry --publish published=5000,target=5000 registry:2--> 这将在同一台机器上创建注册服务器

  1. 运行 docker-compose build--> 使用 docker 文件在本地构建镜像

  2. docker-compose 推送--> 像在 docker compose 中一样推送到 Registry Server

现在,当我重新启动机器时,容器/服务会自动触发,但存储库中的图像会丢失。

最佳答案

您必须安装一个卷才能持久保存您的数据,您可以使用 the docs 中提到的 volume 选项来完成此操作.通过应用它,您的图像将变成这样:

version: '3.4'
services:
service1:
image: ${REGISTRY_SERVER_IP}:5000/service1
build: .
restart: always
deploy:
mode: global
restart_policy:
condition: on-failure
ports:
- 3632:3632
volumes:
- /path/to/local:/var/lib/registry
entrypoint:
- init.sh

注意:将 : 之前的部分更改为您要持久化数据或使用命名卷的本地路径

关于Docker 注册表镜像 - 持久性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53888028/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com