# Pasos posteriores a la instalación en Linux para Docker Engine


Estos procedimientos opcionales de postinstalación describen cómo configurar tu máquina host Linux para que funcione mejor con Docker.

## Gestionar Docker como usuario sin privilegios de root

El demonio de Docker se vincula a un socket Unix, no a un puerto TCP. Por defecto, es el usuario `root` el propietario del socket Unix, y otros usuarios solo pueden acceder a él utilizando `sudo`. El demonio de Docker siempre se ejecuta como el usuario `root`.

Si no deseas anteponer el comando `docker` con `sudo`, crea un grupo de Unix llamado `docker` y añade usuarios a él. Cuando el demonio de Docker se inicia, crea un socket Unix accesible por los miembros del grupo `docker`. En algunas distribuciones de Linux, el sistema crea automáticamente este grupo al instalar Docker Engine utilizando un gestor de paquetes. En ese caso, no es necesario que crees el grupo manualmente.

<!-- prettier-ignore -->
> [!WARNING]
>
> El grupo `docker` otorga privilegios equivalentes a root al usuario. Para obtener detalles sobre cómo afecta esto a la seguridad de tu sistema, consulta [Superficie de ataque del demonio de Docker](/engine/security/#docker-daemon-attack-surface).

> [!NOTE]
>
> Para ejecutar Docker sin privilegios de root, consulta [Ejecutar el demonio de Docker como usuario sin root (Modo Rootless)](/engine/security/rootless/).

Para crear el grupo `docker` y añadir a tu usuario:

1. Crea el grupo `docker`.

   ```console
   $ sudo groupadd docker
   ```

2. Añade tu usuario al grupo `docker`.

   ```console
   $ sudo usermod -aG docker $USER
   ```

3. Cierra la sesión y vuelve a iniciarla para que se revalúe tu pertenencia al grupo.

   > Si estás ejecutando Linux en una máquina virtual, puede ser necesario reiniciar la máquina virtual para que los cambios surtan efecto.

   También puedes ejecutar el siguiente comando para activar los cambios en los grupos:

   ```console
   $ newgrp docker
   ```

4. Verifica que puedes ejecutar comandos de `docker` sin `sudo`.

   ```console
   $ docker run hello-world
   ```

   Este comando descarga una imagen de prueba y la ejecuta en un contenedor. Cuando el contenedor se ejecuta, imprime un mensaje y finaliza.

   Si inicialmente ejecutaste comandos de la CLI de Docker utilizando `sudo` antes de añadir a tu usuario al grupo `docker`, es posible que veas el siguiente error:

   ```text
   WARNING: Error loading config file: /home/user/.docker/config.json -
   stat /home/user/.docker/config.json: permission denied
   ```

   Este error indica que los ajustes de permisos para el directorio `~/.docker/` son incorrectos, debido a haber utilizado el comando `sudo` anteriormente.

   Para solucionar este problema, puedes eliminar el directorio `~/.docker/` (se vuelve a crear automáticamente, pero se perderán los ajustes personalizados) o cambiar su propietario y permisos utilizando los siguientes comandos:

   ```console
   $ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
   $ sudo chmod g+rwx "$HOME/.docker" -R
   ```

## Configurar Docker para que se inicie al arrancar con systemd

Muchas distribuciones modernas de Linux utilizan [systemd](https://systemd.io/) para gestionar qué servicios se inician cuando el sistema arranca. En Debian y Ubuntu, el servicio de Docker está configurado para iniciarse al arrancar de forma predeterminada. Para iniciar automáticamente Docker y containerd al arrancar en otras distribuciones de Linux que usan systemd, ejecuta los siguientes comandos:

```console
$ sudo systemctl enable docker.service
$ sudo systemctl enable containerd.service
```

Para desactivar este comportamiento, utiliza `disable` en su lugar:

```console
$ sudo systemctl disable docker.service
$ sudo systemctl disable containerd.service
```

Puedes utilizar archivos de unidad de systemd para configurar el servicio de Docker en el arranque, por ejemplo para añadir un proxy HTTP, establecer un directorio o partición diferente para los archivos de ejecución de Docker, u otras personalizaciones. Para ver un ejemplo, consulta [Configurar el demonio para usar un proxy](/engine/daemon/proxy/#systemd-unit-file).

## Configurar el controlador de registros predeterminado

Docker proporciona [controladores de registro](/engine/logging/) para recopilar y ver los datos de registro de todos los contenedores que se ejecutan en un host. El controlador de registro predeterminado, `json-file`, escribe los datos de registro en archivos con formato JSON en el sistema de archivos del host. Con el tiempo, estos archivos de registro aumentan de tamaño, lo que puede agotar los recursos de disco.

Para evitar problemas de uso excesivo de disco para los datos de registro, considera una de las siguientes opciones:

- Configura el controlador de registro `json-file` para activar la [rotación de registros](/engine/logging/drivers/json-file/).
- Utiliza un [controlador de registro alternativo](/engine/logging/configure/#configure-the-default-logging-driver) como el controlador ["local"](/engine/logging/drivers/local/) que realiza la rotación de registros de forma predeterminada.
- Utiliza un controlador de registro que envíe los registros a un agregador de registros remoto.

## Próximos pasos

- Echa un vistazo al [taller de Docker](/get-started/workshop/) para aprender a crear una imagen y ejecutarla como una aplicación contenedorizada.

