Update: Я удалил как бродяга и Докер, и будет принимать любой ответ, который помогает мне заново установить оба из них таким образом, чтобы:Vagrant и Docker не играет хороший
- Я могу запустить Бродяга без какой-либо зависимости от Докера; и
- Я могу запустить Docker без какой-либо зависимости от Vagrant; и
- я могу запустить Vagrant и использовать Docker в качестве поставщика основы
Если вы посмотрите на исходный код Vagrant, вы увидите, что моя ошибка исходит от this line of code, что, для поставщиков VirtualBox, происходит от this usable
method подняв ошибку. Этот метод usable
вызывает ошибку, если он считает, что VirtualBox имеет недопустимую версию (VirtualBoxInvalidVersion
) или если ее не обнаружено в локальной системе (VirtualBoxNotDetected
).
Не будучи рубиновым разработчиком, мне становится трудно понять, как Вагрант решает выбросить одну из этих двух ошибок. Но я думаю, что я приближаюсь к выяснению, почему Docker запускает мою конфигурацию Vagrant/VirtualBox.
Оригинальный вопрос:
Mac здесь. Несколько дней назад я установил Vagrant и VirtualBox, как так:
brew cask install virtualbox
brew cask install vagrant
brew cask install vagrant-manager
... который получил его Vagrant и не работает никаких проблем вообще. Мне удалось vagrant init hashicorp/precise32; vagrant up
, и все выглядело так, будто он работал отлично (hashicorp/precise32
использует VirtualBox по умолчанию).
Затем прошлой ночью я установил Docker, что также требует VirtualBox, и он запущен и работает без проблем. Я даже смог получить примеры контейнеров whalesay
. Все идет нормально.
Сегодня я пошел играть в Vagrant, и похоже, что моя установка Docker закрыла мою конфигурацию Vagrant/VirtualBox.
Теперь, когда я бегу vagrant init hashicorp/precise32
на пустой каталог, а затем запустить vagrant up
, я получаю:
[email protected]:~/sandbox/myapp$vagrant up
No usable default provider could be found for your system.
Vagrant relies on interactions with 3rd party systems, known as
"providers", to provide Vagrant with resources to run development
environments. Examples are VirtualBox, VMware, Hyper-V.
The easiest solution to this message is to install VirtualBox, which
is available for free on all major platforms.
If you believe you already have a provider available, make sure it
is properly installed and configured. You can see more details about
why a particular provider isn't working by forcing usage with
`vagrant up --provider=PROVIDER`, which should give you a more specific
error message for that particular provider.
Итак, я попытался указать тип поставщика, даже если я не должен, просто чтобы посмотреть, что происходит:
[email protected]:~/sandbox/myapp$vagrant up --provider=VirtualBox
The provider 'VirtualBox' could not be found, but was requested to
back the machine 'cortex'. Please use a provider that exists.
И только для хорошей меры, бег vagrant -v
производит Vagrant 1.7.2
в качестве выходного сигнала.
Любые идеи, что пошло наперекосяк и какое исправление?
У меня возникла аналогичная проблема после установки панели инструментов docker и исправлена после запуска этой команды 'rm -r ~/.vagrant.d/plugins.json ~/.vagrant.d/gems' – BMW
Спасибо @BMW, но это не так работа для меня. – smeeb
Ubuntu 12.04 не предлагается играть с докером, потому что для докера требуется ядро Linux 3.13+. Хотя вы можете запустить '' sudo apt-get update && sudo apt-get install linux-image-generic-lts-trusty'' для обновления ядра в нем, я все же предлагаю вам вместо этого использовать Ubuntu 14.04. – kxxoling