Gdzie Vagrant zapisuje zmiany w maszynie wirtualnej?

103

Dopiero zaczynam od Vagranta i mam trochę problemów ze zrozumieniem kilku szczegółów. Przeczytałem dokumenty, ale wciąż brakuje mi podstawowej koncepcji. Kiedy chcę rozpocząć Vagrant box, uruchamiam:

vagrant up

Spowoduje to „zbudowanie maszyny wirtualnej w oparciu o pudełko”. Rozumiem, że pudełka są przechowywane w ~ / .vagrant.d i faktycznie spakowałem własne pudełko z podstawowego pudełka Ubuntu. Jednak kiedy uruchamiam włóczęgę i zaczynam dodawać pliki do maszyny wirtualnej, gdzie jest przechowywany wirtualny dysk twardy dla maszyny wirtualnej? Na przykład, kiedy uruchamiam apt-get install apache2 i modyfikowany jest system główny, gdzie jest to modyfikowane?

Kiedy robię du w moim bieżącym katalogu, nie widzę żadnych zmian. Nie widzę też żadnych zmian w katalogu ~ / .vagrant.d. Mogę jednak zatrzymać włóczęgę, zrestartować komputer lokalny, a następnie ponownie uruchomić włóczęgę, a zmiany są gdzieś utrwalone.

włóczęga się również raporty

[default] VM already created. Booting if its not already running...

Czy ktoś może mi powiedzieć, gdzie jest tworzona maszyna wirtualna i gdzie wprowadzane są zmiany?

Drzewo
źródło

Odpowiedzi:

113

Vagrant importuje skrzynkę bazową, która znajduje się ~/.vagrant.d/boxes/, jak powiedziałeś. Tutaj są przechowywane pudełka podstawowe. Używa go do uruchamiania maszyny wirtualnej ze stanu czystego. Podczas importowania maszyny wirtualnej odpowiedzialność za miejsce przechowywania plików danych i stanu maszyny wirtualnej spoczywa na samym VirtualBox. Jest to lokalizacja, którą można konfigurować, ale zazwyczaj jest to lokalizacja domyślna ~/VirtualBox\ VMSdla systemów Mac OS X i Linux. W systemie Windows pudełka są przechowywane%userprofile%\.vagrant.d\boxes

Łatwo jest znaleźć miejsce, w którym powstają, niezależnie od platformy, z której korzystasz.

1. Start VirtualBox. 
2. Go to the VM that shows as running instance. 
3. Check out the Settings ->Storage. 
4. You can find the path to location where VMs are created and stored in your file system.
pyfunc
źródło
Dziękuję za Twoją odpowiedź. Ładnie wyjaśniłeś, jak to działa.
Drzewo
12
Jest też ~/VirtualBox VMSw systemie Windows.
Jason R. Coombs
Zastanawiałem się, czy @pyfunc i inni użytkownicy tutaj mogliby mi pomóc w używaniu vagranta na istniejącej maszynie wirtualnej, która nie jest tworzona przy użyciu vagrant upw pierwszej kolejności. stackoverflow.com/q/14503932/80353
Kim Stacks
@kimsia: Możliwe jest wyeksportowanie maszyny wirtualnej po pewnym przygotowaniu jako plik pudełkowy, którego można używać z vagrantem. Zobacz moją notatkę na blogu, jeśli to może pomóc: pyfunc.blogspot.com/2011/11/…
pyfunc
@pyfunc, dziękuję za odpowiedź. Twój post na blogu dał mi kilka wskazówek. Mam więcej pytań. Czy byłoby dobrze, gdybym skopiował Twój komentarz i wkleił jako odpowiedź na moje pytanie i zabrał tam rozmowę? A może wolisz udzielić tego jako odpowiedzi na moje pytanie? To jest moje pytanie stackoverflow.com/q/14503932/80353
Kim Stacks
4

Zawsze zmieniam katalog, którego domyślnie używa Virtualbox dla maszyn wirtualnych. Zwykle znajduje się w folderze profilu w systemie Windows.

Zmieniam to na coś takiego jak "D: \ VHDs \ VBox \" i tam znalazłem mój vagrant test vm: "test01_1347456065". Nazywało się test01, więc myślę, że włóczęga dodaje liczby, aby zachować wyjątkowość.

Christopher Thorjussen
źródło
2
Vagrant dodaje znacznik czasu UNIX do nazwy folderu.
kynan