Vagrant

$ apt install -f
$ apt --fix-broken install
$ apt install ruby-dev vagrant
$ apt install virtualbox virtualbox-ext-pack
$ modprobe -a vboxguest vboxsf vboxvideo
$ modprobe vboxnetadp
$ modprobe vboxnetflt

Docker - по сути это некий контейнер в который вы можете засунуть операционную систему, свой софт и базу данных и запустить его. У контенеров есть слои, ОС - нижний слой, софт выше слой, и ваше приложение и данные - верхний слой. Контенеры удобны для переноса приложения и сопровождающего окружения на сервер или в облако. Docker не создает виртуальную систему, а только эмулирует ее пробрасывая системные вызовы и работает стабильно только в Linux. С недавнего времени появилась версия для MacOS. Обычно сброка бокса описана в файле Dockerfile.

Vagrant, же, напротив - базируется на системах виртуализации (VirtualBox, libvirt, xen). С самого начала он создает полноценную виртуальную машину, выполняет скрипт provision, который устанавливает все окружение и настраивает его. Vagrant работает на всех операционных системах в силу своей природы.

  • Shell — старые добрые shell-скрипты. В XXI веке уже не интересно.
  • Ansible — молодая, набирающая обороты, система управления конфигурацией.
  • Chef — про него, пожалуй, слышали все. Поддерживается standalone (Chef Solo) и серверная (Chef Client) версии.
  • Docker — модная в последнее время система, поддерживающая концепцию Immutable Server.
  • Puppet — одна из наиболее распространенных систем управления конфигурацией. Поддерживается standalone и серверная версия.
  • Salt — система управления конфигурацией Salt Stack.

У нас есть виртуальная машина с наименованием "vm". В отключено состоянии выполняем команду от root. Где /Users/mirocow/vagrant/vm.box является путем до создаваемой коробки.

$ rm /Users/mirocow/vagrant/vm.box
$ vagrant package --base vm --output /Users/mirocow/vagrant/vm.box
$ vagrant box add foo-box /path/to/vagrant-box.box
$ vagrant init foo-box
$ vagrant up

Yii2

Wordpress

Остальные

/sbin/mount.vboxsf: mounting failed with the error: No such device

$ vagrant plugin expunge
$ vagrant plugin install vagrant-vbguest 
$ vagrant box update
$ vagrant vbguest

Другие системы виртуализации