## 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 /bin/bash # O si bash no está disponible: docker exec -it 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