Вопрос: О Docker или отличие от виртуальной машины и немного о Vagrant...?

Лучший ответ:
Docker ~ lxc ~ cgroups = система ограничения ресурсов для групп процесов в линуксе = запускать можно только "линукс программи"
Virtualbox(VMware) = системи виртуализации = запускается полноценная ОС и там и там поднять любую ОС нетразница в том что к Docker я буду иметь доступ сразу же из bash, а к VB через её окно или ssh, плюс если я выйду то в виртуалке все сохранится, а в Docker без коммита все умрет? в общем случае - даИли есть другие важные отличия...? есть. Описани вишеТоесть имеется ввиду, я могу работать с кодом прямо в docker image, после коммитить, пушить, а затем все это запускать на сервере без установки зависимостей? даVagrant, насколько я понимаю активно применяется при создании images и конфигурировании их же? вагрант -- оболочка над virtualbox или docker и создан для удобства разработчика. На стороне сервера, в общем случае не применяетсяПосле войти в Windows, запустить image и там продолжить разработку? если речь про докер -- нет. На винде тебе прийдется поднять виртуалку с линуксом и внутри нее работать с докер контейнером. Если речь про virtualbox, то скорее да чем нет. В худшем случае, нужно будет сделать експорт-импорт виртуалки в virtualboxupdА как дела обстаят с "прожорливостью", к примеру image c LAMP против нативной установки? потери есть, но они не могут сравниться с плюшкамиИ можно ли поднять 2 images с LAMP, кофнликт неминуем? можно, но не на 80 порту, а на других, и перед ними поставить роутер-прокси в виде еще одного бокса с nginx на борту

Худший ответ:
Хотелось бы узнать в чем различие между Virtualbox(VMware) и Docker?
Docker - строгая изоляция ресурсов внутри операционной системы Linux. 
Не более того. То есть бинарный файл запускается в той же ОС, но не имеет доступа за пределы выделенной ему клетки. Программа (одна-единственная вообще говоря в Докер предполагается программа) может иметь свои-собственные зависимости, более того, допускается использование совсем другой версии Linux внутри Докер-контейнера.
Но это не виртуализация. Точнее можно назвать это изоляцией от окружения (настроек) операционной системы. Смысл Докера именно в этом - чтобы можно было запусить программу почти где угодно, не настраивая ее под другую ОС (не устанавливая библиотек, не прописывая путей, портов, не создавая настроечных файлов по возможности и пр.).
Это делается на уровне API ОС, следовательно, довольно не накладно по производительности. Правда, при неграмотном использовании (когда в качестве предков в образе используются разные образы) накладно по расходу дискового пространства.
В частности Docker умеет запускать только Linux из под Linux, причем не какие угодно версии годятся, в контейнере Докера может быть только специально подготовленная (облегченная). В других OC - Windows, MacOSX - Докер реализован как полноценная виртуальная машина с Линуксом, следовательно, жрет ресурсов много.VirtualBox - это настоящая виртуальная машина, то есть внутри может быть действительно совершенно другая ОС. Не только Linux. Полная изоляция вплоть до эмуляции аппаратных портов-ввода вывода. Изоляция более строгая. Но требует намного больше ресурсов.
Запуск виртуальной машины сопряжен со значительными затратами времени. Лучшие виртуальные машины откусывают не менее 15% производительности....
Запуск программы в Docker - сопоставим с запуском обычного бинарного файла внутри обычного операционного окружения (если уж быть точным - то чуть больше, но незначительно).
При грамотном использовании вы можете запускать на обычном домашнем компьютере хоть сотни Докер-контейнеров. 
А вот запустить на том же железе хотя бы несколько полноценных виртуальных машин вряд ли получится.Если я правильно понимаю, я могу и там и там поднять любую ОС, к примеру ту же Ubuntu и LAMP.
Внутри Докера - далеко не любую. Выбор ограничен считаным числом специально подготовленных дистрибутивов Линукса.
Внутри Virtual Box - действительно любую.Только разница в том что к Docker я буду иметь доступ сразу же из bash, а к VB через её окно или ssh, 
То, что вы хотите и через Virtual Box легко реализуется с помощью инструмента Vagrant. Будет иллюзия, что вы в Докере работаете.
плюс если я выйду то в виртуалке все сохранится, а в Docker без коммита все умрет? Или есть другие важные отличия...?
То, что вы имеете ввиду - можно сделать и внутри полной виртуалки - отключить персистентное сохранение на диски.
То, о чем вы пишете -  это просто концепция стейтлесс-контейнеров. То есть внутри все настроено раз и навсегда. Все изменения контейнер Докера должен делать только на смапированных внешних девайсах. Это гарантирует постоянство внешней среды для программы внутри Докер-контейнера. Крайне важно для повторяемости в продакшене. Чтобы не пришлось в 3 ночи просыпаться и искать отчего ваш сайт с миллионой посещаемостью перестал работать. Ах это потому что какая то софтина не имеющая отношения к вашей программе обновилась и потянула за собой библиотеку, не соместимую по версией с тем, что вы используйте.Пишут что Docker активно применяется при программировании и переносе workstations. Тоесть имеется ввиду, я могу работать с кодом прямо в docker image, после коммитить, пушить, а затем все это запускать на сервере без установки зависимостей?
Нет.Концепция повторяемости такова. 
Вы программируете и дизайнере и верстаете как обычно.
Результат своей работы вы помещаете в контейнер - отлаживаете в контейнере.
На сервере используется тот же контейнер.
Это гарантирует какую-то повторяемость условий при которых велась отладка и при которых будет работать все в продакшне.
Ну или в более сложных случаях - отправляете на тестирание. Тестирование проводится в Докер-контейнере, затем артефакты перемещаются в другой Докер контейнер и отправляются в продакшн. Хотя могут и прямо в тестовом контейнере уехать в продакшн, прямо с исходниками.Vagrant, насколько я понимаю активно применяется при создании images и конфигурировании их же?При разработке - да.
Так как ты можешь работать в несовместимой с docker средой (например, в Windows) и отладка возможна только через виртуальную машину.В продакшене - нет. Так как слишком большие накладные расходы на виртуальную машину.И последнее, могу ли я:
Запустить image в Linux, сделать правки в коде (кстати как это сделать, к примеру в том же *storm, Sublime. ... ) и закоммитить.
После войти в Windows, запустить image и там продолжить разработку?
Думаю да,
но это не то, для чего создавался Докер.
А написание кода внутри виртуальной машины - возможно. Я сам так делаю.