# Instalar Docker Engine

#### Guía oficial

[Install Docker Engine on Ubuntu | Docker Docs](https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository)

## Instalación

Añadir el repositorio de Docker.

```bash
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
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

# Add the repository to Apt sources:
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
sudo apt-get update
```

<p class="callout info">Si usas un derivado de Ubuntu es posible que tengas que usar `UBUNTU_CODENAME` en lugar de `VERSION_CODENAME`.</p>

Instalar la ultima versión.

```bash
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
```

Verificar que se ha instalado Docker.

```bash
sudo docker run hello-world
```

## Docker-compose

```bash
# Obtiene la última versión de Docker Compose desde la API de GitHub
VERSION=$(curl --silent https://api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*\d')

# Descarga el binario de Docker Compose para Linux (x86_64) y lo guarda en /usr/local/bin/docker-compose
sudo curl -SL https://github.com/docker/compose/releases/download/$VERSION/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

# Alternativa comentada para descargar Docker Compose:
# Esta línea obtiene la última versión y descarga el binario correspondiente al sistema operativo y arquitectura
# sudo curl -L "https://github.com/docker/compose/releases/download/$(curl https://github.com/docker/compose/releases | grep -m1 '<a href="/docker/compose/releases/download/' | grep -o 'v[0-9:].[0-9].[0-9]')/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# Espera 2 segundos
sleep 2

# Asigna permisos de ejecución al binario descargado de Docker Compose
sudo chmod +x /usr/local/bin/docker-compose
```

##### **Permitir que el usuario pueda ejecutar comandos de sin usar sudo Docker.**

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

##### **Administrar contenedores**

**Ver los contenedores**

```bash
sudo docker ps -a
```

**Parar contenedor**

```bash
sudo docker stop <container_id>
```

**Borrar contenedor**

```bash
sudo docker rm <container_id>
```

**Ver los recursos que consume un contenedor**

```bash
docker stats <container_id>
```

**Ver los logs un contenedor**

```bash
docker logs <container_id>
```