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

7.5 KiB

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 docker stop Parar un contenedor docker container start docker start Arrancar un contenedor detenido docker container restart docker restart Reiniciar un contenedor docker container rm docker rm Eliminar un contenedor


📦 Imágenes

Comando largo - Alias corto Descripción

docker image ls docker images Listar imágenes docker image rm 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 Eliminar volumen docker volume prune Limpiar volúmenes no usados docker network ls Listar redes docker network rm 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