Instalar docker y grupo de usuraio

 Sí, definitivamente hay una forma más recomendada y actualizada de instalar Docker. El comando sudo apt-get install docker.io -y que estás usando instala la versión que viene en los repositorios oficiales de Ubuntu, la cual suele ser antigua y no recibe las actualizaciones más recientes.

La forma estándar y recomendada por Docker es instalar Docker Engine desde su repositorio oficial APT. Esto te garantiza la versión más reciente y estable.

Aquí te explico cómo hacerlo paso a paso.

1. Desinstalar la versión anterior (importante)

Antes de instalar la nueva, es mejor eliminar el paquete antiguo para evitar conflictos.

bash
sudo apt remove docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc

Nota: Este comando no eliminará tus imágenes, contenedores o volúmenes, que se guardan en /var/lib/docker/.

2. Instalar Docker desde el repositorio oficial

Sigue estos pasos para configurar el repositorio oficial e instalar Docker.

  1. Actualiza los paquetes e instala las dependencias necesarias:

    bash
    sudo apt update
    sudo apt install ca-certificates curl -y
  2. Agrega la clave GPG oficial de Docker:

    bash
    sudo install -m 0755 -d /etc/apt/keyrings
    sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
    sudo chmod a+r /etc/apt/keyrings/docker.asc
  3. Agrega el repositorio oficial de Docker a las fuentes de APT:

    bash
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
      $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
      sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  4. Actualiza el índice de paquetes e instala Docker:

    bash
    sudo apt update
    sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
    • docker-ce: El motor de Docker (Community Edition).

    • docker-compose-plugin: El plugin de Docker Compose, que es la forma moderna de usarlo (ya no necesitas instalar docker-compose por separado).

3. Verificar la instalación

Para confirmar que todo ha ido bien, puedes ejecutar el contenedor de prueba:

bash
sudo docker run hello-world

4. (Opcional) Ejecutar Docker sin sudo

Como viste en el tutorial, para no tener que escribir sudo cada vez, puedes agregar tu usuario al grupo docker:

bash
sudo usermod -aG docker $USER

Recuerda cerrar sesión y volver a abrir la terminal para que los cambios tengan efecto.

En resumen

MétodoComandoVentajas
Repositorio de Ubuntusudo apt install docker.ioFácil, pero versión desactualizada.
Repositorio Oficial(Pasos descritos arriba)Versión más reciente, actualizaciones automáticas, es el método estándar.

Te recomiendo cambiar a este método. 

Agregar tu usuario al grupo docker

Paso 1: Crear el grupo docker (si no existe)

bash
sudo groupadd docker

(Probablemente ya existe, pero no está de más ejecutarlo.)

Paso 2: Agregar tu usuario al grupo docker

bash
sudo usermod -aG docker $USER

Reemplaza $USER con tu nombre de usuario (o usa $USER que es una variable que contiene tu nombre).
Si tu usuario es soteLo, sería:

bash
sudo usermod -aG docker soteLo

Paso 3: Aplicar los cambios

Hay varias formas de que los cambios surtan efecto:

  • Cerrar sesión y volver a abrir (la más segura).

  • O usar el comando:

    bash
    newgrp docker

    Esto inicia una nueva sesión de shell con el grupo actualizado.

  • O reiniciar el servicio de Docker (aunque no es necesario):

    bash
    sudo systemctl restart docker

Recomendación: si estás en una terminal gráfica, simplemente cierra la ventana y abre una nueva. Si estás en una sesión SSH, sal y vuelve a entrar.

Paso 4: Verificar que todo funciona

Ejecuta:

bash
docker ps

Ahora deberías ver la lista de contenedores (aunque esté vacía, no dará error).
También puedes ver todos los contenedores, incluido el hello-world que creaste con sudo:

bash
docker ps -a

Deberías ver algo como:

text
CONTAINER ID   IMAGE         COMMAND    CREATED         STATUS                     NAMES
xxxxxxxxxxxx   hello-world   "/hello"   5 minutes ago   Exited (0) 2 minutes ago   some-name

¿Por qué antes no veías el contenedor?

Cuando ejecutaste docker ps -a sin sudo, el comando falló por permisos, pero el contenedor hello-world sí existe, solo que no podías verlo. Si ejecutas sudo docker ps -a, verás que el contenedor está ahí. Pero ya con los permisos arreglados, podrás verlo sin sudo.


Alternativa (no recomendada para el día a día)

Si por alguna razón no quieres agregar tu usuario al grupo docker, puedes seguir usando sudo para todos los comandos de Docker:

bash
sudo docker ps -a
sudo docker exec -it ...

Pero es más incómodo y puede causar problemas de permisos con los archivos generados (porque pertenecerán a root). Es mejor usar el grupo docker.


Resumen de la solución

  1. Crear el grupo (si no existe): sudo groupadd docker

  2. Agregar usuario: sudo usermod -aG docker $USER

  3. Aplicar cambios: cerrar sesión y volver a abrir terminal (o usar newgrp docker).

  4. Verificar: docker ps ya no da error.


¡Haz eso y podrás usar Docker sin sudo!

Comentarios

Entradas más populares de este blog

12. Hola Mundo en Docker.

11¿Qué es Docker? y ¿Por qué debo saberlo?

14. Publish and Detached modes