¿Cómo instalar Docker en linux y no morir en el intento?

Hace rato que no escribo nada y quería hacer algo sencillo y apto para todo público. Cada vez son más las personas que empiezan a estudiar programación y a veces está bueno tener un tutorial explicado en lenguaje amigo.

Prerequisitos

Cómo dije antes, vamos a necesitar tener una máquina virtual con linux para este tutorial, voy a poner los comandos para el mundo RHEL y el mundo Ubuntu

Ubuntu

Primero vamos a actualizar el listado de paquetes.
$ sudo apt update

Desinstalamos versiones viejas.
$ sudo apt-get remove docker docker-engine docker.io containerd runc
(Si recién instalas la máquina, apt-get debería decirte que esos paquetes no estan instalados).

Instalamos los paquetes que permiten a apt hablar HTTPS
$ sudo apt install apt-transport-https ca-certificates curl software-properties-common

Agregamos la clave GPG del repositorio oficial de Docker

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Agregamos el repositorio de docker a apt sources:
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"

Actualizamos la lista de paquetes.
sudo apt-update

Instalamos docker:
$ sudo apt install docker-ce

Una vez finalizada la instalación chequeamos que el servicio esté corriendo:
$ sudo systemctl status docker

La salida del comando debería ser algo similar a esto

Output
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-09-22 15:08:39 UTC; 2min 55s ago
     Docs: https://docs.docker.com
 Main PID: 10195 (dockerd)
    Tasks: 16
   CGroup: /system.slice/docker.service
           ├─10195 /usr/bin/dockerd -H fd://
           └─10113 docker-containerd --config /var/run/docker/containerd/containerd.toml

En este punto docker ya está instalado, pero requiere algunas configuraciones extra.

Red Hat / CentOS

Primero vamos a borrar instalaciones viejas de Docker:

$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

(Si la imagen del sistema operativo es nueva, debería decirnos que no encuentra los paquetes)

Instalamos las yum-utils y seteamos el respositorio:

$ sudo yum install -y yum-utils

$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

Instalamos la ultima versión de Docker Engine y conteinerd:

$ sudo yum install docker-ce docker-ce-cli containerd.io

Iniciamos Docker:

$ sudo systemctl start docker

En este punto docker ya está instalado.

Permisos

Por defecto, el comando docker solo puede ser ejecutado por el usuario root o un usuario en el grupo docker.

Para evitar tener que tipear sudo cada vez que usamos docker hay que agregar nuestro usuario al grupo de docker.

$ sudo usermod -aG docker ${USER}

Otra opción es agregar el usuario de forma explicita, por ejemplo:
$ sudo usermod -aG docker username

Para aplicar los permisos es importante que hagamos logoff con el usuario y hagamos login nuevamente.

Una vez hecho esto. Deberíamos poder correr comandos de docker.

Por ejemplo:
$ docker run hello-world

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
9bb5a5d4561a: Pull complete
Digest: sha256:3e1764d0f546ceac4565547df2ac4907fe46f007ea229fd7ef28984514bcec35d
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.
...

¿Cómo preparar el VCP-Data Center Virtualization 2020?

Después de más de un año sin rendir certificaciones me decidí a ponerme al día y prepararme para el VCIX-DCV.
Lamentablemente, por los cambios en las políticas de certificación de VMware me di cuenta que mi VCP-DCV6 estaba vencido y no iba a servir.

Al tener una certificación VCP-DCV6, no me era necesario rendir el examen vSphere 6.7 Foundations ni asistir a ningún curso. Por lo que directamente agendé el examen delta de vSphere 6.7. Con esto ya tenía una fecha limite, a partir de eso empecé a trabajar.

Lo primero que hice fue descargar la guía de del examen. En base a esa guía separé los temas en 3 “pilas”: Lo sé, no lo sé, hace falta un repaso. Entonces, por ejemplo: SIOC y NIOC entraron en la pila de lo sé, Fault Tolerance entró en la pila de repaso y temas como vCenter HA o VM encryption en la pila de no lo sé. Siendo la ultima pila la de mayor prioridad.

Desde la documentación oficial de VMware leí la teoría para cada tema en las pilas de repaso y no lo sé, también aprovechando la oferta de VMware Learning Zone gratis por seis meses elegí ver los videos de Exam Prep (hay uno para el foundations si tuvieras que prepararlo), hay un video por cada objetivo.
Entonces, por ejemplo, Para el objetivo 1.2 – Identify vCenter high availability (HA) requirements leí todo lo referente a vCenter HA hasta estar seguro de que lo había entendido y después me vi el video relacionado del Exam Prep donde un instructor te da tips del estilo de:
¿En qué se diferencian vCenter HA y vSphere HA? ¿Cuántos componentes tiene? ¿Cuáles son los requisitos?


El día del examen rendí remoto con el modo proctored de Pearson Vue (en otro post te cuento la experiencia). El examen son 40 preguntas multiple choice y es en inglés, tenes 90 minutos para rendirlo (la página dice 75, pero te dan unos minutos extra por no ser un país donde el inglés es el idioma oficial). Por referencias de conocidos, el nivel de inglés puede afectar tu performance en el examen. Personalmente no me pareció dificil, muchas de las preguntas vienen desde vSphere 6.0 y al tener experiencia con la solución salen fácil. Una vez terminas con las preguntas podes revisarlas todas o directamente ir a la devolución.
Al temrinar el examen sabes la nota, yo me saque 462/500 y la nota minima para aprobar es 300, también te podes imprimir el resultado. Más o menos a las 24 horas VMware me mandó el badge de la certificación mediante YourAcclaim.

VMware Certified Professional - Data Center Virtualization 2020

En esta crónica te conté mi forma de preparar esta certificación, que en mi caso puntual ya había rendido antes y es un producto con el que tengo experiencia. Como siempre digo, es mi forma de hacer las cosas, no quiere decir que sea la única, simplemente es la que a mi me funciona.

Gracias por leer
Por favor contame que te pareció el articulo.

Nacho