245 lines
7.5 KiB
Markdown
245 lines
7.5 KiB
Markdown
## 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 |