Pull to refresh

Comments 21

Сделайте лучше docker-контейнер — это гораздо удобнее чем инструкция с картинками.
Картинки просто чтобы текст разбавить, вся нужная информация текстом идёт.
А что такое «docker-контейнер» — я не особо в курсе, не возникало такой необходимости (ну, знаю, что это какой-то вариант виртуальной машины, но не более).
Просто то что вы делаете вручную — это прошлый век :)
Гораздо полезнее оформить это в виде Dockerfile.
Автоматизация процесса развертывания, гарантия повторяемости результата + изоляция приложения от хост-системы.

Докер — это не «вариант виртуализации», это способ «упаковать» приложение и затем автоматически его разворачивать на любом хосте, где установлен докер (а сейчас он работает на любом современном linux-дистрибутиве).
Подскажите, где можно почитать доступно с примерами про docker?
Так тут на хабре было очень много уже материалов на эту тему.

Один раз попробовав докер от него уже не отказаться.

Я, к примеру, даже сервер приложений 1С 8.2 и PostgreSQL с патчами 1С разворачиваю docker-контейнерами. Это очень удобно, потому что элементарно повторяемая установка — не нужно все делать вручную, один раз сделал Dockerfile, изоляция приложения — например Postgres-1С требует специфические версии библиотек.
А уже всякие специфические web-приложения, что требуют специфического окружения для запуска — тут докер просто спасение.

Представьте себе что вам нужно N разных версий Web-приложения 1С развернуть, например один боевой вариант и пару новых версий. Или например они выпустят модуль для Apache 2.4? Вам для теста придется разворачивать несколько машин, даже виртуальных.

С докером вы все это сделаете легко и непринужденно. и потом при миграции — опустите один контейнер, запустите другой.
Только для начала надо понять, что это такое. Я читал несколько статей, но так и не понял, как этот докер использовать и где оно мне может пригодиться.
К примеру, как эти контейнеры с сетью общаются? На каждый контейнер виртуальная сетевая карта создаётся? Или надо их по разным портам растаскивать?
Обычно используется NAT.
При запуске контейнера указывается какой порт контейнера на какой порт хоста нужно замапить.

Докер — это возможность «упаковать» приложение со всеми потребными библиотеками и обращаться с ним примерно как с единым исполнимым файлом. При том что внутри там может быть много чего.

Это сложно объяснить в двух словах, это другой уровень абстракции. Вместо того чтобы каждый раз париться с установкой чего-то — достаточно сделать правильную «инструкцию» в виде Dockerfile. Далее это приложение может быть собрано в виде контейнера автоматически, отправлено в репозиторий, скачано на другие машины (хоть на миллион), запущено и остановлено как единое целое.

Сам контейнер обеспечивает уровень изоляции наподобии виртуальной машины, но из-за отсутствия слоя виртуализации — падения производительности нет.

Ну ладно, допустим. Как это применимо к моему случаю? Надо опубликовать базу в вебе.
Мой вариант:
запустил виртуальную машину (само собой, никто её с нуля не ставил, просто достал образ с полки),
поставил нужный апач,
1С,
опубликовал базу.
Если надо опубликовать еще одну или ту же с другими настройками — редактируется vrd-файл и вставляется еще десяток строчек в конфиг апача. В корне вебсервера лежит скрипт, который показывает список опубликованных баз. Чтобы юзерам не приходилось рассылать ссылки.

Вариант с докером:
запустил виртуальную машину,
настроил там докер (у меня нет образа с настроенным докером),
поставил нужный апач,
1С,
опубликовал базу.
засунул в контейнер — а что именно засунул? По идее, у меня там должны быть апач и 1С. Ну если изолировать службу и зависимости. Ну или точнее, апач с подключенным модулем, файл default.vrd и строчка в конфиге.
Надо опубликовать еще одну базу или базу с другими настройками. Что делаю? Лезу в контейнер и меняю конфиги? Или делаю копию контейнера, лезу в копию и меняю конфиги?
Вариант с докером более «индустриальный»

На локальной машине — поставил какой-нить убунту, в нее докер.

Написал Dockerfile, в нем явно описываются папки с данными например.

Далее на этой-же машине — собрал образ контейнера.
Написал команду docker-run (или использовал docker-compose например)

Что в результате — полностью повторяемое окружение. Можешь послать другу Dockerfile по почте. Или развернуть на реальном железе — все будет ровно так-же.
Хочется второй контейнер — просто запускаешь, передаешь скажем другие папки.
Вариантов масса, они выглядят сложными, но это только кажется.
В реальности выходит полностью само-документированная конфигурация и легко запускаемые контейнеры с приложением.

Я тоже долго думал-думал, а теперь даже не представляю зачем бы мне хотелось все это руками делать каждый раз.
Всё равно ничего не понял. Теперь еще папки с данными появились.

Хочется второй контейнер — просто запускаешь, передаешь скажем другие папки.

Так что в контейнере-то лежит? Апач с модулем 1С? Просто апач? Конфиги и модуль 1С я отдельно снаружи держу?

Вариантов масса, они выглядят сложными, но это только кажется.

Может и кажется, но я пока не вижу никакого упрощения в сравнении с реальной машиной. Только лишние слои абстракции.
Если вам надо 1 раз в жизни развернуть виртуалку под конкретную задачу и забыть про нее надолго, то докер конечно не нужен.
Современная манера пихать его везде где ни попадя есть зло.
Но вот если у вас задача не разовая, и инфраструктура требует стандартизации и повторяемости, то изучить стоит, контейнеры очень удобны в своей нише.
Ну может и не один раз в жизни, но это явно не ежедневная задача. Поставил, запустил, отладил, работает. Всё.
Если надо повторить или «отправить товарищу» — написал инструкцию, благо все шаги тут минут пять занимают, если не считать установку ОС и скачивание дистрибутива 1С.

Не вижу я тут места для докера. Тем более, что нет понимания, что вообще должно быть в предложенном контейнере…
В общем, я пока что очередной раз записал его в «девелоперские штучки» и убрал на дальнюю полку. Я старый солдат и не знаю… В смысле, я простой админ, а не разработчик. И пока что все слова на тему «а вот я познал докер и не понял как жил без него раньше» меня что-то не трогают. :)
Про тещу (жену): Ругается — значит работает.
Один вопрос, почему на ГикТаймс, а не на Хабре?
Не знаю. А есть разница?
Если разделили, значит хотят, чтобы на хабре было меньше контента.
UFO just landed and posted this here
А на гиктаймс тогда что?
Я вообще думал, что хабр решили оставить «для нормальных людей» — туда материалы, интересные потенциально всем. А на гиктаймс, наоброт, вынести специализированные вещи, которые интересны/полезны только гикам.
UFO just landed and posted this here
То есть хабр для гиков, гиктаймс — для простых людей, а мегамозг — для «mentally challenged» (или какой там сейчас принят термин).
Sign up to leave a comment.

Articles