Изображение реестра Docker - Постоянство - PullRequest
0 голосов
/ 21 декабря 2018

Я создал частный реестр Docker и могу выдвигать и извлекать данные из других raspi в той же сети (добавлен параметр ip реестра в незащищенный-реестр)

docker push registry-ip: 5000 / image

но когда мой компьютер сервера реестра перезагружается, я не могу увидеть образ хранилища, и мне нужно снова отправить образ на хост-компьютер реестра:

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

ничего не возвращает

Почему это так?Он должен быть постоянным и сохранять изображение в реестре, поскольку оно хранится в образах докеров

Любой обходной путь или любая конфигурация, которая может справиться с ситуацией

================ ОБНОВЛЕНИЕ ==================================

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

Я запускаю этот скрипт: 1. Создание сервера реестра

docker service create --name registry --publish published=5000,target=5000 registry:2 -> Это создаст сервер реестра на том же компьютере

Выполнение docker-compose build -> локальное построение образа с помощью файла Docker

docker-compose push -> Push на сервер реестра, как в Docker compose

Теперь, когда я перезагружаю машину, автоматически запускается контейнер / служба, но изображение в репозитории теряется.

1 Ответ

0 голосов
/ 22 декабря 2018

Вам необходимо смонтировать том, чтобы сохранить ваши данные, вы можете сделать это с помощью опции 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

Примечание: измените деталь перед : на ваш локальный путь, где вы хотите сохранить данные или использовать именованный том

...