Самая большая трата - трата времени.
В современном мире время ценится очень высоко, поэтому люди придумывают различные способы его сохранить, оптимизировать. А с современными технологиями в области информации и программных продуктов сегодня придумали массу способов для облегчения жизни. Возьмем команду разработчиков, как часто им приходится делать одни и те же действия? А если им требуется передать разработанный продукт клиенту, но для этого подготовить всё на серверах клиента для запуска продукта? А если таких клиентов несколько?
Или рассмотрим другой вариант. У Вас есть несколько команд разработчиков, которые используют одни и те же технологии, каждый раз устанавливать все используемые программные продукты для всех проектов?
Можно, конечно, написать скрипты, которые будут каждый раз устанавливать всё необходимое, но даже так на всё может уходить много времени.
Ну и наконец рассмотрим вариант человека, который хочет что-то попробовать, но для этого ему надо установить, например, web сервер, но он не знает как его установить и настроить его.
Здесь на помощь приходит Docker. Docker упаковывает ПО(программное обеспечение) вместе со всеми необходимыми библиотеками, настройками, кодом и средой в так называемые контейнеры, которые потом можно переносить на другие машины. Контейнеры что-то среднее между установленным ПО на сервере и виртуальной машиной.
Установить и развернуть Docker очень легко на различные ОС (операционные системы), даже на Windows. Мы же рассмотрим установку на сервер CentOS 7.
Затем выберем репозиторий со стабильной версией Docker:
Ну и теперь устанавливаем:
Теперь добавляем в автозагрузку и запускаем:
Остается только проверить работоспособность:
Этот код скачивает образ, запускает контейнер, который выводит информационное сообщение и завершает работу.
Установка Docker не заняла много времени, а что с установкой программ? Довольно много уже готовых образов есть в так называемом Docker Hub, его дополняют как обычные пользователи вроде нас с Вами, так и команды разработчиков различного ПО. Помните нашу статью по установке Atlassian Bitbucket? С помощью Docker это занимает 3 строчки:
ВНИМАНИЕ!
Стоит предупредить, что по умолчанию Docker переписывает правила firewall, что позволяет получить доступ к контейнеру из вне. Это частая ошибка новичков.
Поэтому отключим возможность изменения правил firewall. Для начала пропишем в свойствах запуска сервиса --iptables=false. Приблизительно должно получиться следующее:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --iptables=false
После этого надо перезапустить службы:
У данного способа есть недостаток - после обновления Docker придется заново прописывать эту настройку. Для того, чтобы после перезагрузки настройки сохранились, надо создать файл daemon.json с содержимым:
{
"iptables": false
}
Теперь останется только перезапустить docker:
Но теперь в наш контейнер мы не сможем опасть не только снаружи, но и из другого контейнера, если у Вас их запущено несколько. Для этого нужно отредактировать правила firewall.
Добавим создаваемый docker прокси интерфейс (по умолчанию docker0) в разрешенные:
Для доступа из Интернет к контейнеру, нужно разрешить определенные порты, например так:
Для доступа из контейнера в Интернет нужен маскарадинг. Активируем его для зоны public, в которой он по-умолчанию отключен:
Изучать возможности Docker можно долго, мы же хотели Вам рассказать о существовании такого ПО. Есть множество ресурсов по обучению и использованию Docker как на английском языке, так и на русском. Очень хороший ресурс для просмотра базовых возможностей Docker, но, к сожалению, он полностью на английском. Зато этот курс полностью интерактивный и с подобием виртуальной машины, выводящие свою консоль прямо в Ваш web браузер.
Команда Syncweb надеется, что данная статья была Вам полезна и поможет сохранить Ваше драгоценное время.