- PVSM.RU - https://www.pvsm.ru -
Docker – это программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации (см. Википедию [1]).
Подробные инструкции по установке есть на официальном сайте: https://docs.docker.com/engine/installation/ [2]
Если вы читаете эту статью, то вероятно уже знакомы с докером и готовы сделать следующий шаг — поднять свой собственный регистр для удобной доставки приложений на продакшен-сервера.
Когда я начал делать новый проект — решил попробовать использовать докер. Получилось четыре контейнера, которые надо как-то доставлять на сервер. Далее последует рассказ о том, что у меня из этого получилось.
Что имеется на входе:
Регистр докера — это хранилище с версионированными докер-образами.
Регистр удобно использовать для доставки приложения на сервер:
У докера есть официальный регистр, как сервис: https://hub.docker.com [3]
Там можно размещать неограниченное количество публичных образов и только один приватный. Большее количество приватных образов можно добавлять за отдельную плату.
Другой вариант использования регистра — поднятие собственного.
Докер предоставляет официальный образ с сервером регистра [4], кроме того есть документация с инструкциями по запуску [5].
Регистр докера способен работать как по http, так и по https. При использовании защищённого соединения возможна так же авторизация отдельных пользователей. Но нужен сертификат, который можно купить только для доменного имени. Самоподписанный сертификат у меня так и не получилось заставить работать (читал в интернетах, что с этим есть проблемы). Ввиду того, что у меня нет доменного имени — мы рассмотрим открытый регистр с доступом по http. Это значит, что если кто-то узнает адрес вашего регистра — он сможет свободно им пользоваться.
Регистр представляет из себя докер-контейнер, который запускается одной командой:
› docker run -d -p 5000:5000 --restart=always --name registry registry:2
Готово, но для того, чтобы клиент докера на этом сервере мог обращаться к регистру по открытом соединению без авторизации — нужно добавить строчку в конфигурационный файл /etc/default/docker:
DOCKER_OPTS="$DOCKER_OPTS --insecure-registry <ip-адрес сервера>:5000"
После чего нужно перезапустить докер:
› service docker restart
У меня на компьютере для работы докера используется система виртуализации VirtualBox, в которой запускается boot2docker (минимальный образ Linux с докером), который в свою очередь работает с контейнерами. Виртуальных машин, работающих под VirtualBox на компьютере может быть несколько, для управления ими используется docker-machine.
Для того, чтобы можно было обращаться к регистру по открытому соединению без авторизации — нужно добавить опцию в конфигурационный файл, который лежит внутри виртуальной машины, под которой работают контейнеры.
Посмотрим список виртуальных машин:
› docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default * virtualbox Running tcp://192.168.99.100:2376 v1.9.1
Подключимся к нашей виртуальной машине:
› docker-machine ssh default
В ней есть файл /var/lib/boot2docker/profile, в котором присутствует такой фрагмент:
EXTRA_ARGS='
--label provider=virtualbox
'
Открываем его на редактирование с sudo, чтобы получилось так:
EXTRA_ARGS='
--label provider=virtualbox --insecure-registry <ip-адрес сервера>:5000
'
Представим, что у вас в текущей директории уже есть Dockerfile и мы можем просто собрать новый образ с именем my-image:
› docker build -t my-image .
Теперь можно добавить образу тег и отправить его в регистр:
› docker tag my-image <ip-адрес сервера>:5000/my-image:latest
› docker push <ip-адрес сервера>:5000/my-image:latest
Сейчас образ в регистре, мы можем получить его на сервере и запустить:
› docker pull <ip-адрес сервера>:5000/my-image:latest
› docker run -d <ip-адрес сервера>:5000/my-image
Итак, мы подняли собственный открытый регистр для хранения докер-образов и рассмотрели пример отправки-получения образа с его помощью.
Надеюсь, что это будет кому-то полезно, потому что мне подобного руководства очень не хватало.
Автор: tenorok
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/it-infrastruktura/115512
Ссылки в тексте:
[1] см. Википедию: https://ru.wikipedia.org/wiki/Docker
[2] https://docs.docker.com/engine/installation/: https://docs.docker.com/engine/installation/
[3] https://hub.docker.com: https://hub.docker.com
[4] официальный образ с сервером регистра: https://hub.docker.com/_/registry/
[5] документация с инструкциями по запуску: https://docs.docker.com/registry/deploying/
[6] Источник: https://habrahabr.ru/post/279659/
Нажмите здесь для печати.