2016-08-24 6 views
0

Мое приложение использует несколько технологий, таких как redis, couchDB, nodejs, ... Некоторые из них, которые я беру из концентратора докеров (например, redis) и некоторые другие (например, приложение nodejs), размещены в моем docker repo на моем собственном сервере. Теперь, что является самым простым способом развертывания моего полного приложения в удаленной системе? Было бы здорово, если бы я мог просто использовать один docker-compose.yml и запустить docker-compsoe up -d, но я думаю, что это не сработает, потому что я использую изображения из своего собственного докере-репо. Так что сначала мне нужно вытащить все эти изображения через docker pull на удаленной системе или можно ли передать мой .yml-файл, чтобы вытащить из моего репо? Или есть другое решение?Самый простой способ развернуть приложение докеров

+0

Вы должны предоставить некоторые Infos о целевой системе. –

+1

это необходимо? Я думал, что мы используем докер, потому что нас не волнует хост-система? Но хорошо: это debian VM, размещенная на Azure. – Munchkin

ответ

3

Не беспокойтесь о приватном реестре. docker-compose может автоматически извлекать изображения из частного репозитория.

Перед тем, как потянуть, вам необходимо пройти аутентификацию перед тем, как сделать приватную регалию. Тип $docker login <private_repository> до $docker-compose up

примечание! Необходимо указать правильные имена для собственных изображений. Вам нужно пометить изображение с YOUR_REGISTRY_HOST

docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

и после этого вы можете нажать на изображение на свой реестр. в Докер-компоновать вам необходимо указать полное имя изображения с именем хоста, как

image: my_registry/image_name

+0

Спасибо, я попробую! Но что, если изображение в моем личном реестре имеет то же имя, что и изображение из узла докеров? Какой из них вытащить? – Munchkin

+1

Вам нужно пометить свое изображение с помощью YOUR_REGISTRY_HOST 'docker tag [OPTIONS] IMAGE [: TAG] [REGISTRYHOST /] [USERNAME /] NAME [: TAG]' и после него вы можете нажать изображение в свой собственный реестр. в docker-compose необходимо указать полное название изображения (с именем хоста 'image: my_registry/image_name' –

2

Бухаров указали правильные шаги. Для себя я задал аналогичный вопрос об этой теме для моей установки CI. Я сделал небольшую документацию, которую хочу поделиться.

  • Начало реестра Контейнер

    run -d -p 127.0.0.1:5000:5000 --restart always -v registry:/var/lib/registry --name registry -e REGISTRY_STORAGE_DELETE_ENABLED=true registry:2.4

  • Подготовьте свои локальные изображения для частного реестра.

    docker tag <local image> localhost:5000/<local image>

  • Добавить изображение в частном реестре.

    docker push localhost:5000/<local image>

  • разворачивать образ из частного реестра.

    docker pull localhost:5000/<local image>

  • Удалить тег из изображения.

    docker rmi localhost:5000/gdal:1

  • Список всех фотографий.

    curl -X GET http://localhost:5000/v2/_catalog

  • Список всех тегов для перечисленных изображений.

    curl -X GET http://localhost:5000/v2/<repository>/tags/list (Auflistung aller Tags zu einem repository)

  • Читать все файлы манифеста.

    curl -X GET http://localhost:5000/v2/<repository>/manifests/<tag oder digest> -H "Accept: application/vnd.docker.distribution.manifest.v2+json"

  • Удаление изображения в частном реестре.

    apt-get update && apt-get install -y curl jq

    curl https://raw.githubusercontent.com/burnettk/delete-docker-registry-image/master/delete_docker_registry_image.py | tee /usr/local/bin/delete_docker_registry_image >/dev/null chmod a+x /usr/local/bin/delete_docker_registry_image

    export REGISTRY_DATA_DIR=/var/lib/registry/docker/registry/v2

    delete_docker_registry_image --image nginx:stable-alpine –dry-run

    delete_docker_registry_image --image nginx:stable-alpine

Для получения дополнительной информации, доступ к закрытому реестра accross сети: https://docs.docker.com/registry/deploying/#/running-a-domain-registry
Общей информации о частном реестре dockre: https://docs.docker.com/registry/deploying/

Смежные вопросы