En este post dejo un código de docker compose que te permite levantar un docker con wordpress que usa una base de datos mysql y para poder administrarla usar el phpmyadmin.
Esto es muy recomendable para aquellos desarrolladores que tienen que estar levantando ambientes de desarrollos con distintas versiones de wordpress ó mysql ya sea para actualizarlas o para probar algo en particular.
En lo particular me sirve mucho para dejar reflejado en un ambiente local tal cual las características que tiene el sitio en producción; es decir que si el sitio de un cliente tiene en producción wordpress 5 mientras ya está vigente la versión 6 yo puedo seguir manteniendo esa versión ya sea para luego actualizarla o por resguardo (backup)
Lo mismo pasa con las bases de datos si hay varias versiones y tal vez algunas tengan algunas características más o menos dependiendo de la versión y con esto podemos reflejar exactamente lo mismo que tenemos en producción.
Si acabas de instalar docker y te aparece ese mensaje de error Got permission denied while trying to connect to the Docker daemon al ejecutar docker, por ejemplo “docker ps” o “docker run” o cualquier otro comando de docker esto te puede servir.
Primero tenemos que agregar el grupo docker y para esto en la consola ejecutamos lo siguiente:
sudo groupadd docker
Ahora tenemos que agregar el usuario nuestro a ese nuevo grupo y para esto ejecutamos en la linea de comando lo siguiente:
Me pasó que necesitaba por un tiempo hacer que docker no inicie automáticamente; es decir, que cuando se reinicia el Servidor las imágenes de docker no se carguen automáticamente.
El proyecto yo lo tenía con docker-compose, pero para esto usé solo los comandos de docker.
Primero chequeo lo que está corriendo con
docker ps
Debería mostrar todas las imágenes que tenemos corriendo
CONTAINER ID | IMAGE | COMMAND | CREATED | STATUS | PORTS | NAMES |
e1dff1f51add | grafana/grafana | “/run.sh” | 5 months ago | Up 47 seconds | 0.0.0.0:3030->3000/tcp, :::3030->3000/tcp | internetmonitoring\_grafana\_1 |
031ec8738933 | prom/prometheus:v2.25.2 | “/bin/prometheus –c…” | 5 months ago | Up 55 seconds | 0.0.0.0:9090->9090/tcp, :::9090->9090/tcp | internetmonitoring\_prometheus\_1 |
5f3eb5b03d57 | prom/node-exporter | “/bin/node\_exporter …” | 5 months ago | Up About a minute | 0.0.0.0:9100->9100/tcp, :::9100->9100/tcp | internetmonitoring\_nodeexp\_1 |
9bb31e45eb8e | prom/blackbox-exporter | “/bin/blackbox\_expor…” | 5 months ago | Up About a minute | 0.0.0.0:9115->9115/tcp, :::9115->9115/tcp | internetmonitoring\_ping\_1 |
7987218a65d9 | miguelndecarvalho/speedtest-exporter | “python -u exporter.…” | 5 months ago | Up About a minute | 0.0.0.0:9798->9798/tcp, :::9798->9798/tcp | internetmonitoring\_speedtest\_1 |
docker update --restart no e1dff1f51add
Y así sucesivamente con todas las imágenes que queremos que NO se inicie al reiniciar nuestro servidor.
A veces necesitamos copiar un archivo desde nuestra máquina local de desarrollo al docker o viceversa; esto es muy común o frecuente que tengas que realizarlo cuando estás desarrollando una app, una web o lo que fuese dentro de un Docker.
Para esto tenemos un par de comandos que son muy útiles.
El primero sirve para copiar desde un contenedor docker a una máquina local:
docker cp NOMBRE_CONTENEDOR:RUTA_DEL_CONTENEDOR RUTA_LOCAL
El segundo sirve para copiar desde la pc local a un contenedor docker:
Esto tal vez le puede servir a mas de uno y de paso me lo dejo como ayuda memoria
Usé un dockerfile para crear un esquema de wordpress es decir que ese docker contiene un nginx, una base mysql (mariadb) y el lenguaje PHP que utiliza WordPress; cuando levantaba el docker con docker-compose up la base me daba error entonces necesitaba ejecutar por consola algunos comandos para poder crear la base que no la había creado y también para darle privilegios al usuario en cuestión.