Files
guias_informatica/Guia_docker.md
T
2026-08-04 19:24:21 +02:00

245 lines
7.5 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## AYUDA DOCKER
docker desktop start        abrir docker desktop
docker info                     verificar que docker esta corriendo
docker ps                  # Ver contenedores en ejecución
docker ps -a                 # contenedores creados
docker stop mi-web     # Parar el contenedor
docker start mi-web      # Iniciar el contenedor nuevamente
docker rm mi-web         # Eliminar el contenedor (cuando ya no lo necesites)
docker images Imagenes existentes en local
Dockerfile                  Archivo texto instrucciones crear imagen docker.
docker build .             Construir una imagen a partir de Dockerfile
docker login             Iniciar sesion docker hub
docker logout           Cerrar sesion docker hub
docker pull nombreimagen:version descargar imagen docker
docker push nombreimagen publicar imagen
docker searh nombreimagen buscar imagen
Iniciar un contenedor
docker run nombre_contenedor
docker run -d --name owncloud -p 8080:80 owncloud:latest
Docker compose
docker compose up -d
docker compose down Detiene y eliminar el contenedor
docker stop vaultwarden # parar contenedor
docker start vaultwarden # arrancar contenedor
docker restart vaultwarden # reiniciar contenedor
---
#### 🐳 Contenedores
**Acceder a la terminal de un contenedor existente:**
```
docker exec -it <nombre_o_id_del_contenedor> /bin/bash
# O si bash no está disponible:
docker exec -it <nombre_o_id_del_contenedor> sh
```
docker exec -it nombrecontenedor whereis bash/sh
docker exec -it caddy /bin/sh (para caddy por ejemplo cambia a sh)
Comando largo - Alias corto Descripción
docker container ls docker ps Listar contenedores en ejecución
docker container ls -a docker ps -a Listar todos los contenedores
docker container stop <id> docker stop Parar un contenedor
docker container start <id> docker start Arrancar un contenedor detenido
docker container restart <id> docker restart Reiniciar un contenedor
docker container rm <id> docker rm Eliminar un contenedor
---
#### 📦 Imágenes
Comando largo - Alias corto Descripción
docker image ls docker images Listar imágenes
docker image rm <id> docker rmi Eliminar una imagen
docker image prune (no tiene alias) Borrar imágenes no usadas
Crear/levantar contenedor si ya tienes la imagen, sin dockerfile:
docker run -d \
--name vaultwarden \
-e DOMAIN="https://vw.domain.tld" \
-v $(pwd)/vw-data:/data \
-p 8000:80 \
vaultwarden/server:latest
---
#### 🔧 Volúmenes y redes (sin alias cortos)
Comando largo - Descripción
docker volume ls Listar volúmenes
docker volume rm <id> Eliminar volumen
docker volume prune Limpiar volúmenes no usados
docker network ls Listar redes
docker network rm <id> Eliminar red
docker network prune Limpiar redes no usadas
---
#### 🔧 Opciones disponibles para restart
Docker ofrece cuatro opciones principales para controlar el comportamiento de reinicio:
no (por defecto) El contenedor no se reinicia nunca automáticamente, ni al fallar ni al reiniciar Docker.
always El contenedor siempre se reinicia, incluso si lo detuviste manualmente o al reiniciar Docker Desktop.
unless-stopped Igual que always, pero no se reinicia si tú lo detuviste manualmente antes de apagar Docker.
on-failure[:n] Solo se reinicia si el contenedor termina con error (exit code ≠ 0). Puedes limitar el número de intentos con :n.
Ejemplo: on-failure:5.
---
#### Mover imagenes
🔁 Mover una imagen Docker a otro equipo (recomendado)
Exportar la imagen a un archivo .tar
docker save -o nombre_imagen.tar nombre_imagen
Ejemplo:
docker save -o mi_app.tar mi_app:latest
Importar la imagen en el segundo equipo
docker load -i nombre_imagen.tar
docker load -i mi_app.tar
docker run ...
✅ Si quieres exportar la imagen con los datos
docker save flask-contactos > flask-contactos.tar
cp ./data/contacts.db contactos.db
En el nuevo equipo, haz:
docker load < flask-contactos.tar
mkdir data
cp contactos.db ./data/
docker run -d -p 5000:5000 -v $(pwd)/data:/data flask-contactos linux
docker run -d -p 5000:5000 -v ${PWD}/data:/data flask-contactos windows
---
Docker build (despues de contruir imagen con build, despues se puede quitar y usar solo image: nombreimagen)
services:
app:
\- build: .
\+ image: mi_app_python:1.0`
---
#### Instalar docker
Uninstall old versions
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
Set up Docker's apt repository.
**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 "{UBUNTU_CODENAME:-VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Install the Docker packages.
To install the latest version, run:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Verify that the installation is successful by running the hello-world image:
sudo docker run hello-world
This command downloads a test image and runs it in a container. When the container runs, it prints a confirmation message and exits.
1. (Opcional) Evitar usar sudo con Docker Para no tener que escribir sudo cada vez, agrega tu usuario al grupo docker: sudo usermod -aG docker $USER newgrp docker # Recarga los grupos sin reiniciar sesión Ahora puedes probar sin sudo: docker run hello-world
Para instalar además docker Desktop en Ubuntu Desktop:
1.sudo apt install gnome-terminal
2\. Descargar el paquete .deb de docker Desktop
3\. sudo apt-get update
sudo apt-get install ./docker-desktop-amd64.deb
---
#### Docker Windows
Habilitar wsl 2
Abrir PowerShell como Administrador
wsl --install
Descargar/instalar docker Desktop
Configuración importante:
· ✅ Instalar componentes adicionales para WSL 2
· ✅ Agregar acceso directo al escritorio
· ✅ Usar contenedores de Windows
Abrir PowerShell o Command Prompt
docker --version
docker-compose --version
docker run hello-world
wsl --list --verbose
---
#### Copia base de datos mysql
Copia seguridad base mysql (backup)
docker exec -it mysql-db mysqldump -u root -p testdb > backup.sql
mysql-db → es el nombre del contenedor (en tu docker-compose.yml).
\-u root -p → usará la contraseña root que definiste.
testdb → es el nombre de la base de datos.
> backup.sql → guarda la copia en tu máquina (no dentro del contenedor).
> 👉 Al ejecutarlo te pedirá la contraseña (root).
Restaurar desde un backup (restore)
docker exec -i mysql-db mysql -u root -p testdb < backup.sql
Esto sobrescribirá la base de datos testdb con el contenido del backup.
---
#### Puetos docker Ubuntu Server
navidrome          4533
kanboard         8081 - 443
owncloud         8082
owncloud-mariadb  3306
owncloud-redis     6379
jellyfin               8096
transmission        9091
portainer          9443
plex             32400