Skip to content

Instantly share code, notes, and snippets.

@HectorMarroquin
Last active February 4, 2025 23:21
Show Gist options
  • Save HectorMarroquin/7615d8e293895d66e4128c19541c2c64 to your computer and use it in GitHub Desktop.
Save HectorMarroquin/7615d8e293895d66e4128c19541c2c64 to your computer and use it in GitHub Desktop.
Comandos y tips de Dockers

Sobre Dockers.

Comandos diversos.

docker image ls

docker image pull <image>

docker container run

docker container ls

docker compose up

docker compose down

-Comando para entrar al contenedor (como si fuera un servidor en linux)

docker exec -it hash_contenedor /bin/sh

Levantar mariadb y phpmyadmin

  1. Levantar mariadb y asignarle un volumen para que se guarde la DB y no pase nada en caso de eliminar accidentalmente el contenedor (para esto ya se tendria que tener descargado la imagen de mariadb):

Estos comandos permiten poner en una misma "red" al phpmyadmin y mariadb para que puedan comunicarse

docker container run -dp 3307:3306 -e MARIADB_USER=example-user -e MARIADB_PASSWORD=user-password -e MARIADB_ROOT_PASSWORD=root-secret-password -e MARIADB_DATABASE=world-db --name world-db -v world-db:/var/lib/mysql --network world-app mariadb:jammy

  1. Instalar phpmyadmin y ponerlo en la misma red que mariadb

docker container run --name phpmyadmin -dp 8081:80 -e PMA_ARBITRARY=1 --network world-app phpmyadmin:5.2.0-apache

Construir imagen a partir del DockerFile.

Comandos para la construcción

docker build --tag cron-ticker:lastest .

  • El punto al final indica que nos encontramos en donde esta el dockerfile.
  • Si no se indica el tag se tomara como el latest

Reconstrucción de imagen

Al ejecutar el mismo comando en el mismo proyecto Docker solo reconstruye si hubo cambios, lo demas lo guarda en cache.

  • Para renombrar una imagen

docker image --tag cron-ticker:1.0.0 cron-ticker:bufalo .

Se conserva la imagen anterior, es como si se copiara la imagen con un nuevo nombre

Subir imagen

_Tenemos que tener una cuenta en docker hub y haber creado previamente el repositorio donde se subira la imagen

Si la imagen que vamos a subir no tiene el nombre de imagen de nuestro usuario de cuenta de Docker Hub debemos renombrarlo:

  1. docker image --tag cron-ticker hectormarroquin/cronticker
  2. docker login
  3. docker push hectormarroquin/cron-ticker-js:tagname

Docker Buildx

  • listar los builders existentes docker buildx ls

  • Crear un Buildx docker buildx create --name mybuilder --driver docker-container --bootstrap

  • Usar el buildx docker buildx use mybuilder

  • Revisar que arquitecturas tengo soportadas para la construcción docker buildx inspect

  • Agregar la variable al DockerFile. --platform=$BUILDPLATFORM

  • Generar el build con diferentes arquitecturas docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t hectormarroquin/cron-ticker:latest --push .

Cuando se ejecuta el comando anterior se generan las imagenes y se mandan directo a DockerHub, no se quedan en local, para que se quede la imagen en local tendria que crear una a una con docker build o usar la bandera --load en vez de --push, sin embarogo solo aguanta una arquitectura a la vez.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment