You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
174 lines
4.6 KiB
174 lines
4.6 KiB
4 years ago
|
# Virtualizaciones y contenedores
|
||
|
|
||
|
## Instalación de _virtualBox_
|
||
|
|
||
|
Lo hacemos con los origenes de software oficiales (alternativamente, podríamos hacerlo manualmente):
|
||
|
|
||
|
~~~~
|
||
|
# Importamos la clave gpg
|
||
|
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
|
||
|
|
||
|
# Añadimos el nuevo origen de software
|
||
|
sudo add-apt-repository "deb [arch=amd64] https://download.virtualbox.org/virtualbox/debian $(. /etc/os-release; echo "$UBUNTU_CODENAME") contrib"
|
||
|
|
||
|
# Actualizamos la base de datos de paquetes
|
||
|
sudo apt update
|
||
|
~~~~
|
||
|
|
||
|
Ahora podemos comprobar que además del paquete _virtualbox_ tenemos
|
||
|
varios paquetes con número de versión (p.ej. _virtualbox.6.1), estos
|
||
|
últimos son los que hemos añadido (compruebalo con `apt-cache policy
|
||
|
[nombrepaquete]`)
|
||
|
|
||
|
Instalamos el que nos interesa:
|
||
|
|
||
|
~~~~{bash}
|
||
|
sudo apt install virtualbox-6.1
|
||
|
~~~~
|
||
|
|
||
|
**ATENCIÓN**
|
||
|
|
||
|
~~~~
|
||
|
The following additional packages will be installed:
|
||
|
python-is-python2
|
||
|
~~~~
|
||
|
|
||
|
Descargamos también el [VirtualBox Extension
|
||
|
Pack](https://www.virtualbox.org/wiki/Downloads), este paquete lo
|
||
|
podemos instalar desde el propio interfaz de usuario del _VirtualBox_,
|
||
|
o bien con el siguiente comando:
|
||
|
|
||
|
~~~~
|
||
|
sudo VBoxManage extpack install ./Oracle_VM_VirtualBox_Extension_Pack-6.1.2.vbox-extpack
|
||
|
~~~~
|
||
|
|
||
|
|
||
|
Sólo nos queda añadir nuestro usuario al grupo `vboxusers`, con el
|
||
|
comando `sudo gpasswd -a username vboxusers`, y tendremos que cerrar
|
||
|
la sesión para refrescar nuestros grupos.
|
||
|
|
||
|
|
||
|
## qemu
|
||
|
|
||
|
Un par de comprobaciones previas:
|
||
|
|
||
|
* El comando `egrep -c '(vmx|svm)' /proc/cpuinfo` debe devolvernos un
|
||
|
número mayor que cero si nuestro sistema soporta virtualización.
|
||
|
* El comando `kvm-ok` nos sirve para comprobar que la virtualización
|
||
|
hardware no está deshabilitada en la BIOS (puede que tengas que
|
||
|
ejecutar `apt install cpu-checker`)
|
||
|
|
||
|
Instalamos desde el repo oficial:
|
||
|
|
||
|
~~~~
|
||
|
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager
|
||
|
sudo apt install virt-viewer
|
||
|
~~~~
|
||
|
|
||
|
qemu-kvm
|
||
|
|
||
|
: nos da la emulación hardware para el hipervisor KVM
|
||
|
|
||
|
libvirt-daemon-system
|
||
|
|
||
|
: los ficheros de configuración para ejecutar el demonio `libvirt`
|
||
|
como servicio
|
||
|
|
||
|
libvirt-clients
|
||
|
|
||
|
: software para gestionar plataformas de virtualización
|
||
|
|
||
|
bridge-utils
|
||
|
|
||
|
: utilidades de linea de comandos para configurar bridges ethernet
|
||
|
|
||
|
virtinst
|
||
|
|
||
|
: utilidades de linea de comandos para crear máquinas virtuales
|
||
|
|
||
|
virt-manager
|
||
|
|
||
|
: un interfaz gráfico junto con utilidades de linea de comandos
|
||
|
para gestionar máquinas virtuales a través de _libvirt_
|
||
|
|
||
|
Solo queda añadir nuestro usuario a los grupos:
|
||
|
|
||
|
~~~~
|
||
|
sudo gpasswd -a username libvirt
|
||
|
sudo gpasswd -a username kvm
|
||
|
~~~~
|
||
|
|
||
|
Podemos comprobar el estado del servicio con `scs libvirtd`
|
||
|
(`systemctl status libvirtd`).
|
||
|
|
||
|
### Referencias
|
||
|
|
||
|
* [How to install KVM on Ubuntu 20.04 Graphical & headless
|
||
|
server](https://www.how2shout.com/how-to/how-to-install-kvm-on-ubuntu-20-04-graphical-headless-server.html)
|
||
|
* [How to Install Kvm on Ubuntu 20.04](https://linuxize.com/post/how-to-install-kvm-on-ubuntu-20-04/)
|
||
|
* [How to Install KVM on Ubuntu 20.04](https://www.tecmint.com/install-kvm-on-ubuntu/)
|
||
|
|
||
|
|
||
|
## Docker
|
||
|
|
||
|
Tenemos que añadir el repositorio correspondiente a nuestra
|
||
|
distribución:
|
||
|
|
||
|
~~~~
|
||
|
# Be safe
|
||
|
sudo apt remove docker docker-engine docker.io
|
||
|
sudo apt autoremove
|
||
|
sudo apt update
|
||
|
|
||
|
# Install pre-requisites
|
||
|
sudo apt install ca-certificates curl
|
||
|
|
||
|
# Import the GPG key
|
||
|
|
||
|
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
|
||
|
|
||
|
# Next, point the package manager to the official Docker repository
|
||
|
|
||
|
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(. /etc/os-release; echo "$UBUNTU_CODENAME") stable"
|
||
|
|
||
|
# Update the package database
|
||
|
|
||
|
sudo apt update
|
||
|
#
|
||
|
|
||
|
apt-cache policy docker-ce
|
||
|
|
||
|
sudo apt install docker-ce
|
||
|
|
||
|
sudo gpasswd -a username docker
|
||
|
~~~~
|
||
|
|
||
|
Esto dejará el servicio _docker_ funcionando y habilitado (arrancará
|
||
|
en cada reinicio del ordenador)
|
||
|
|
||
|
La forma de pararlo es:
|
||
|
|
||
|
~~~~{bash}
|
||
|
sudo systemctl stop docker
|
||
|
sudo systemctl disable docker
|
||
|
systemctl status docker
|
||
|
~~~~
|
||
|
|
||
|
Añadimos el _bundle_ __docker__ en nuestro fichero `~/.zshrc` para
|
||
|
tener autocompletado en comandos de docker.
|
||
|
|
||
|
Para usar _docker_ tendremos que arrancarlo, con los alias de nuestro sistema para _systemd_ ejecutamos:
|
||
|
|
||
|
~~~~{bash}
|
||
|
scst docker # para arrancar el servicio
|
||
|
|
||
|
scsp docker # para parar el servicio
|
||
|
~~~~
|
||
|
|
||
|
### docker-compose
|
||
|
|
||
|
* Nos bajamos la última versión disponible de [las releases de
|
||
|
github](https://github.com/docker/compose/releases)
|
||
|
* Movemos el fichero que hemos descargado a `/usr/local/bin/docker-compose`
|
||
|
* Y le damos permisos de ejecución `sudo chmod +x /usr/local/bin/docker-compose`
|