Comandos Linux y Docker: referencia y resolución de problemas

Hemos publicado estos comandos para nuestros desarrolladores con fines de referencia. Son visibles públicamente porque también pueden ser útiles para otros desarrolladores:

Docker

#detener todos los contenedores: docker stop $(docker ps -a -q)

Reiniciar el servicio de Docker

sudo systemctl restart docker.service Recrear todos los contenedores docker-compose up --build --force-recreate --no-deps #detener todos los contenedores por la fuerza docker kill $(docker ps -q) #eliminar todos los contenedores docker rm $(docker ps -a -q) #eliminar todas las imágenes de Docker docker rmi $(docker images -q) #purgar el resto docker system prune --all --force --volumes #Encontrar la IP de un contenedor docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' [container_name] #Mostrar los logs de Docker docker-compose logs #Mostrar los procesos de Docker docker-compose ps Ejecutar mysqldump en un contenedor docker exec [container_name] sh -c 'exec mysqldump --all-databases -uroot -p[password]' > /home/user/all-databases.sql Mensaje de error: Could not kill running container runc did not terminate successfully: container_linux.go:392: init process caused “permission denied” Esto puede ocurrir si apparmor impide detener el contenedor de Docker. Una solución es desinstalar apparmor y reiniciar el servicio de Docker: sudo apt-get purge --auto-remove apparmor sudo service docker restart docker system prune --all --volumes sudo systemctl restart docker sudo systemctl daemon-reload Error al iniciar el proxy userland: listen tcp 172.200.0.1:443: bind: address already in use Encuentra el PID y mátalo: sudo netstat -nlpt |grep 3306 sudo kill [pid]

Red

Número de conexiones abiertas por IP netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n Mostrar todas las direcciones IP conectadas a un puerto determinado netstat -an |grep 443 netstat -an |grep 80 Contar conexiones por IP netstat -an | grep 80 | wc -l netstat -an | grep 443 | wc -l

Firewall iptables

Firewall: bloquear dirección IPsudo iptables -A INPUT -s [IP ADDRESS] -j DROP Permitir el acceso desde una dirección IP específicasudo iptables -A INPUT -s 91.52.78.249 -p tcp –destination-port 3306 -j ACCEPT Desbloquear direcciones IP bloqueadas por fail2ban iptables -D [chain] [line] z.B. iptables -D f2b-wordpress-hard 1 Reglas del Firewall Consulta: https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-18-04

  • sudo ufw default deny incoming
  • sudo ufw default allow outgoing
  • sudo ufw allow ssh
  • sudo ufw allow 1000
  • sudo ufw allow http
  • sudo ufw allow 443
  • sudo ufw allow from 91.52.78.249 to any port 3306 (Dirección IP local)
  • sudo ufw allow from 52.45.200.92 to any port 3306 (Amazon DBS)
  • sudo ufw deny from 157.245.247.135

MySQL

Cambiar el módulo de autenticación de contraseñas de MySQL a mysql_native_password. Necesario al actualizar de 7.X a MySQL 8.x ALTER USER ‘user’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘password1’;

Depurar xDebug:-)

Si tu editor de código no se conecta a xDebug, crea un archivo test.php en la carpeta de tu aplicación con algo de código y añade un punto de interrupción. Luego ejecuta el comando de abajo para probarlo:

PHP_IDE_CONFIG="serverName=tests" php -dxdebug.remote_autostart=1 -dxdebug.remote_enable=1 -dxdebug.default_enable=1 -dxdebug.remote_connect_back=1 -dxdebug.remote_port=9001 -dxdebug.idekey=PHPSTORM -dxdebug.remote_host=172.200.0.1 test.php

El inicio de sesión vuelve a cargar el formulario de login

Si intentas iniciar sesión en KDE y el formulario de login se recarga después de introducir credenciales correctas, prueba los siguientes comandos:

systemctl stop gdm.service
systemctl restart gdm.service
sudo dpkg-reconfigure gdm3
reboot
Rene Hermenau

Autor: Rene Hermenau

Sobre el autor: René Hermenau es el fundador de WP STAGING. Trabaja en copias de seguridad de WordPress, entornos de staging, migraciones, gestión de bases de datos y flujos de despliegue seguros.