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.
...