Virtualizáció

A virtualizáció azt jelenti, hogy egy program nem az adott operációs rendszeren fut közvetlenül, hanem egy "dobozban", akár más operációs rendszer alatt. A szoftverfejlesztés során gyakorlat, hogy egy program egy ilyen virtuális dobozban fut, lényegében függetlenül a gazda operációs rendszertől. Fontos fogalmak:

  • Gazda (host): a fő operációs rendszer.
  • Vendég (guest): a virtuális operációs rendszer.

A lent bemutatott két elterjedt opció egymást kizáróak. A példában a gazda Windows 10 lesz, a vendég pedig Linux.

VirtualBox

Ahhoz, hogy a VirtualBox-ot használni tudjuk, ki kell kapcsolni a Hyper-V-t: Turn Windows features on and off → a Hyper-V legyen kikapcsolva. Ha most kapcsoltuk ki, akkor újra kell indítani a számítógépet, különben nem fogjuk tudni használni a VirtualBox-ot. Ezt akkor is meg kell tennünk, ha visszakapcsoltuk a Docker miatt a Hyper-V-t, és csak el szeretnénk indítani egy VirtualBox-os virtuális gépet.

Letöltés: töltsük le a VirtualBox-ot a https://www.virtualbox.org/ oldalról (egy egyértelmű, szép nagy ikon jelzi, hogy mit kell letölteni), és telepítsük fel. Töltsünk le egy Linux képet is, pl. egy Ubuntu disztribúciót, innen: https://www.ubuntu.com/download/desktop (pl. én ezt töltöttem le: ubuntu-18.04.2-desktop-amd64.iso )

A VirtualBox telepítése: figyelmeztet, hogy megszakad az internet kapcsolat, ezt fogadjuk el, valamint valami meghajítót is feltelepít, azt is hagyjuk jóvá.

Új virtuális gép létrehozása: indítsuk el a VirtualBox-ot, és készítsünk egy új virtuális gépet a Machine → New… menüponttal (Ctrl + N, vagy a megfelelő ikonra kattintva). Adjunk neki egy tetszőleges nevet, válasszuk ki, hogy hol helyezkedjen el (a gazda gépen ez egyetlen könyvtárként, azon belül néhány fájlként fog megjelenni), válasszuk ki az operációs rendszer típusát (pl. Linux) és verzióját (pl. Ubuntu (64-bit)). A Next-re kattintva adjuk meg, hogy mennyi memóriát adunk a rendszernek (az alapértelmezett 1024 MB-tot felnöveltem 4096 MB-ra), az újabb Next után maradjon a választás az, hogy Create a virtual hard disk now → Create → itt maradjon a VDI → Next → maradjon a Dynamically allocated → Next → az alapértelmezett 10 GB-ot kicsinek gondolom, megnöveltem 20 GB-ra → Create. Indítás előtt kattintsunk a beállításokra (Settings), és a Display alatt a videó memória legyen magasabb érték, valamint a Shared folders-en belül adjon meg egy könyvtárat, amin keresztül a gazda gép és a vendég kommunikálni tudnak.

A vendég telepítése: kattintsunk az indításra (Start), itt válasszuk ki a fent letöltött disztribúciót, és kattintsunk a Start-ra. Ha a vendég "elkapja" az egeret, akkor a gazda gépre a jobb Ctrl billentyű lenyomásával tudunk visszatérni. (Ha nem kapcsoltuk ki a Hyper-V-t és nem indítottuk újra a számítógépet, akkor ezen a ponton végtelen ciklusba esik a telepítés.) Az operációs rendszert a szokásos módon telepítsük: pl. Ubuntu esetén a nyelv maradjon angol (a magyar telepítő sajnos hibás) → Install Ubuntu → válasszuk ki a billentyűzetet → Normal installation → Continue → Erase disk and install Ubuntu → Install Now → Continue → Budapest → Continue → töltsük ki a nevünket, a jelszavunkat, és állítsuk be, hogy ne kelljen bejelentkezni → Continue, majd várjuk meg, míg felmásolja a fájlokat. A telepítés végén újra kell indítani a vendég operációs rendszert, de mindez a VirtualBox-on belül lezajlik, a gazda operációs rendszer tudta nélkül.

Utólagos beállítások: a telepítés után, amikor fut a vendég operációs rendszer, abban a VirtualBox ablakban (tehát a gazda operációs rendszer szinten) válasszuk ki a Devices → Insert Guest Addons CD Image… menüpontot, majd a vendég operációs rendszerben ezt telepítsük fel. Ha a gazda gépen be is állítottuk az automatikus felcsatolást, a tapasztalatom szerint ez nem működik, a vendég operációs rendszeren kell beállítani, pl. a következő módon (feltéve, hogy a megosztott könyvtár megnevezése share): jobb egérgombbal → Open Terminal, majd

sudo mkdir /media/windows-share
sudo mount -t vboxsf share /media/windows-share

A megfelelő könyvtárba írva azt látni fogjuk a másikon. Megjegyzés: nem sikerült beállítanom azt, hogy újraindulás után is megmaradjon a felcsatolás. A gazda gépen a Shared Folders-ben hiába állítottam be az Auto-mount-ot és a Make permanent-et, nem működött, és a vendég gépen a neten talált megoldások egyike sem működött. Így létre hoztam egy winshare futtatható fájlt (ld. a gedit szövegszerkesztőt), a fenti mount paranccsal, amit indulás után ki kell adni.

Érdemes beállítani a megosztott vágólapot (Devices → Shared Clipboard → Bidirectional) és a megosztott fogd és viddet is (Devices → Drag and Drop → Bidirectional). A vendég gép újaindítását követően lép életbe.

A vendég pont ugyanúgy éri el az internetet, ahogyan a gazda. Ha proxy-t kell megadni, akkor a vendég gépben is ugyanúgy meg kell adni. Pl. a Firefox böngészővel tudjuk ezt kipróbálni.

Érdemes még beállítani azt, hogy ne kapcsolódjon le a vendég gép automatikusan: a jobb felső sarokban található lefele nyílra, majd a lenyíló menüben a bal alsó ikonra kattintsunk (Settings), itt válasszuk ki a Power-t, és ott értelemszerűen állítsuk át az értékeket arra, hogy Never.

Az alapértelmezett képernyőméret 800*600; azt is célszerű módosítani.

Docker

A Docker egy olyan virtualizációs eszköz, amelynek segítségével egy adott programot lehet futtatni (ellentétben a VirtualBox-szal, amelyben egy teljes virtuális operációs rendszert telepítünk, és azon belül telepítjük a programokat). Sajnos egyszerre nem működik a Docker és a VirtualBox, a kettő kizárja egymást (egészen pontosan a Docker kizárja a VirtualBox-ot). Használata nem egyszerű. Lássuk!

Windows 10 operációs rendszer alatt a hivatalos telepítési dokumentációs ez: https://docs.docker.com/docker-for-windows/install/. Ha nem lenne egyértelmű, ezt kell letölteni: https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe. Korábbi operációs rendszerek alatt a Docker nem működik, helyette a Docker Toolbox használható: https://docs.docker.com/toolbox/toolbox_install_windows/.

Telepítés előtt végre kell hajtani pár lépést:

  • BIOS szinten engedélyezni kell a virtualizációt (ez általában alapértelmezésben engedélyezve van).
  • Operációs rendszer szinten engedélyezni kell a Hyper-V-t (ez alapértelmezésben nincs engedélyezve): Turn Windows features on and off → itt a Hyper-V-t kapcsoljuk be (mindet) → OK, majd újra kell indítani a számítógépet. Ezzel egyébként lehetetlenné tesszük a VirtualBox indulását, így ha azt szeretnénk használni, akkor ki kell kapcsolni a Hyper-V-t, és természetesen ismét újra kell indítani a számítógépet.
  • Telepítsük a Docker for Windows-t. A konténer típusára rá fog kérdezni; az legyen Linux.
  • Indítsuk el a programot. Az ikonja egy megrakott teherhajó és ha fut, akkor a jobb alsó sarokban látható. Kattintsunk jobb egérgombbal → Settings → itt beállíthatjuk az alapértelmezett dolgokat (Proxy, ilyesmi).
  • Hozzunk létre egy azonosítót a https://hub.docker.com/ oldalon.
  • Elvileg van egy grafikus felhasználói felülete, a Kitematic, de nekem nem sikerült működésre bírnom.
  • Elvileg meg lehet osztani könyvtárakat a gazda és a vendég között, de ez nálam nem működött. Ha valaki próbálkozni szeretne ezzel, akkor annak ajánlom a következő oldalt: https://blog.olandese.nl/2017/05/03/solve-docker-for-windows-error-a-firewall-is-blocking-file-sharing-between-windows-and-the-containers/.

Használata. Command line-ból adjuk ki az alábbi parancsokat:

  • Ellenőrizzük, hogy működik-e, a verzió kiíratásával: docker version
  • Lépjünk be az azonosítónkkal: docker login
  • Böngésszünk a képfájlok között: https://hub.docker.com/search/?type=image
  • Listázzuk ki a letöltött képeket: docker images
  • Töltsünk le egy képet: docker pull [imagename]
  • Indítsunk el egy letöltött képet: docker run [imagename]
  • Listázzuk ki a futó konténereket: docker ps -a
  • Másoljunk fájlt egy futó konténerbe: docker cp foo.txt [containerID]:/foo.txt

Ha már van telepítve Docker, és szeretnénk teljesen újratelepíteni, akkor az uninstall futtatása után kézzel ki kell törölni az alábbi két könyvtár tartalmát is: c:\Users\[username]\.docker, c:\Users\Public\Documents\Hyper-V, valamint a DOCKER kezdetű környezeti változókat, különben nem fog működni.

TODO: folytatni

Linux grafikus felület megjelenítése Windows-on

TODO: Xming

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License