Подтвердить что ты не робот

Запуск и развертывание Rails в контейнере Docker

Я полный noob для контейнеров linux и трачу некоторое время на изучение Docker, и прошу прощения, что я запутался в этом вопросе. В настоящее время у меня есть приложение Rails в производстве, развернутое через capistrano. Мои облачные серверы поддерживаются с помощью Opscode Chef в дистрибутиве Debian Wheezy. Для разработки у меня есть Vagrant VM, предустановленная с помощью приложения и служб.

Если бы я должен был использовать Докер, где бы мое приложение сидела? Контейнер или хост? Как мне развернуть (создать) и поделиться каталогами (разработкой)? Могу ли я запускать все мои дополнительные сервисы, например memcache, redis, postgresql и т.д. На том же сервере, используя докер? Возможно, я могу представить потенциал Docker, но у меня проблемы с его практическим использованием.

Кажется, что контейнеры являются частью будущего. Любые рекомендации для кого-то, кто делает переход от виртуализации?

4b9b3361

Ответ 1

Если бы я использовал Docker, где бы мое приложение сидело?

Он может сидеть внутри контейнера или сидеть на хосте (вы можете использовать сборку докеров для копирования приложения в контейнер)

Как мне развернуть (создавать) и обмениваться каталогами (разработкой)?

Развертывание приложения будет означать, что локальный контейнер будет помещен в изображение, опубликовав его и запуск контейнера из опубликованных изображений на ваших серверах. Я не пробовал делиться каталогами между хостом и контейнером, но вы можете попробовать следующее: https://gist.github.com/jpetazzo/5668338. Вы также можете написать файл Docker, который может скопировать каталог в цель в контейнере. Docker документы по созданию изображений помогут вам там.

Можно ли запустить все мои дополнительные сервисы, например memcache, redis, postgresql и т.д. на том же сервере, используя докеры?

Да. На одном сервере будет запущено несколько контейнеров.

Ответ 2

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

Большим преимуществом является то, что вы можете протестировать точно такой же контейнер в своей промежуточной системе, который вы собираетесь отправить на производство. Таким образом, вы можете протестировать полную систему со всеми установленными расширениями C, точно такой же командой ls и т.д.