Entradas

Comandos de Administración de Docker

Enlistar contenedores
docker ps
Enlistar únicamente nombres de contenedores
docker ps --format "{{.Names}}"
Iniciar la terminar (Bash, en modo interactivo) del contenedor
docker exec -it contenedor sh 
Detener todos los contenedores app
docker container stop $(docker container ls -q --filter name=app_*)
Cambiar la política de reinicio del contenedor
docker update --restart unless-stopped contenedor
Ver los mapeos de rutas/archivos del contenedor
docker inspect -f '{{ .Mounts }}' contenedor
Ver las últimas 10 líneas del log
docker logs -f --tail 10 contenedor
Ver el log de la última hora
docker logs --since=1h contenedor
Estadísticas del los contenedores actuales en ejecución
docker stats
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
ebd00777a7d6 webserver-ftp-1 0.00% 900KiB / 3.829GiB 0.02% 872B / 126B 0B / 0B 2
87d762b79004 webserver-nginx-1 0.01% 3.18MiB / 3.829GiB 0.08% 1.12kB / 126B 0B / 0B 3
d07fe0c39ad5 webserver-php-1 0.01% 4.316MiB / 3.829GiB 0.11% 1.25kB / 126B 0B / 0B 3
bdc9da666141 webserver-mysql-1 0.05% 50.39MiB / 3.829GiB 1.29% 1.17kB / 126B 0B / 0B 16

Eliminar objetos no usados (incluyendo contenedores detenidos)
docker system prune

Fuentes

Comandos y Configuraciones de proyectos de Docker

Comandos

Generar imágenes y luego montar los contenedores a partir de la descripción del archivo compose.yaml/compose.yml . En éste caso agregamos el -d para que se haga en segundo plano (modo daemon).
docker compose up -d
Desmontar los contenedores especificados en el compose.yaml/compose.yml .
docker compose down
Actualiza la(s) imagen(es) de un contenedor
docker compose pull
Vuelve a generar contenedores a partir del archivo compose.yaml/compose.yml . Útil en caso de actualizar el cómo se generan las imágenes.
docker compose up --build -d

Definición de proyecto de aplicación Blazor (.Net Core 8) - compose.yaml

services:
  netcore:
    image: mcr.microsoft.com/dotnet/aspnet:8.0
    ports:
      - 80:8080
    volumes:
    - ./publish: /var/netcoreapp
    working_dir: /var/netcoreapp
    entrypoint: ["dotnet", "/var/netcoreapp/PruebaDocker.dll"]
Cabe mencionar que se debe de especificar working_dir, de lo contrario no funcionará el acceso a archivos estáticos.

Archivo XML de configuración de FileZilla

Código

<?xml version="1.0" encoding="UTF-8"?>
<FileZilla3 version="3.64.0" platform="windows">
	<Servers>
		<Server>
			<Host>localhost</Host>
			<Port>21</Port>
			<Protocol>0</Protocol>
			<Type>0</Type>
			<User>Usuario</User>
			<Pass>Contraseña</Pass>
			<Logontype>1</Logontype>
			<PasvMode>MODE_DEFAULT</PasvMode>
			<EncodingType>Auto</EncodingType>
			<BypassProxy>0</BypassProxy>
			<Name>Nombre que aparece en el Gestor de Sitios</Name>
			<SyncBrowsing>0</SyncBrowsing>
			<DirectoryComparison>0</DirectoryComparison>
		</Server>
	</Servers>
</FileZilla3>

En la opción PasvMode se puede especificar MODE_DEFAULT, MODE_ACTIVE o MODE_PASSIVE para especificar si la conexión se realizará en modo premeditado, activo o pasivo, respectivamente. 

 Cabe mencionar se pueden importar tantas conexiones de servidor como se deseen, replicado lo que se encuentra entre las etiquetas <Server>...</Server>.

Cómo Importar

En la ventana principal de FileZilla, vamos a la opción Archivo > Importar...
 


Nos aparecerá un cuadro de diálogo pidiendo el archivo XML de configuración. Lo seleccionamos y aceptamos. Aparecerá éste cuadro pidiendo seleccionar qué configuración deseamos importar. La única que tenemos es la entrada del Gestor de Sitios, así que damos clic en aceptar.

 
Aceptamos 



Ejecutar PostgreSQL desde la consola

@ECHO OFF
SETLOCAL
ECHO.
ECHO LA VENTANA SE CIERRA CON \q
ECHO.

SET "PGPASSWORD=password"
"%programfiles%\PostgreSQL\<b>*version*</b>\bin\psql.exe" -U postgres

ENDLOCAL
::PAUSE

Listar directorios en JAVA

java.io.File dir = new java.io.File(".");
                
for(java.io.File entry : dir.listFiles())
{
	if(entry.isDirectory())
	{
		System.out.println(entry.getName());
	}
}

Instalar y Cofigurar Xdebug en XAMPP y Visual Studio Code

Descargar Xdebug para el servidor

Primero necesitamos obtener información generada por phpinfo(); Cabe aclarar que mi instalación de XAMPP se encuentra ubicada en C:\XAMPP y se entiende que es mi ruta de instalación.

Ya con la información de phpinfo(), la copiamos en la página del aistente de Xdebug https://xdebug.org/wizard donde nos recomienda la mejor versión de la extensión de PHP para nuestra instalación.


 

Instalación y configuración de Xdebug en el servidor

El archivo DLL que descargamos, lo copiamos a C:\xampp\php\ext\ y lo renombramos a php_xdebug.dll en caso de ser necesario.

Se  agregan las siguientes líneas al final de C:\xampp\php\php.ini

[XDEBUG]
zend_extension = xdebug
xdebug.mode = debug
xdebug.start_with_request = yes


Después de guardar los cambios, necesitamos reiniciar el servicio de Apache.

Para verificar si Xdebug está cargado al ejecutar PHP se puede utilizar el comando php -v ; Debe de aparecer "with Xdebug ..." al final.

php -v

VSCode

Para abrir la configuración nos vamos a Archivo > Preferencias >  Configuración... 

 

Buscamos PHP Debug y luego damos click en editar settings.json 

 

Finalmente, agregamos las siguientes líneas:

"php.executablePath": "C:\\xampp\\php\\php.exe",
"php.debug.executablePath":"C:\\xampp\\php\\php.exe",
"php.validate.executablePath": "C:\\xampp\\php\\php.exe",
"php.suggest.basic": false 


 

Lista de Regex comunes en PHP

Lista

UsoRegex
UUID/GUID/[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}/
EMail^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$
Date (YYYY/MM/DD)\d{4}\/\d{2}\/\d{2}
Variables PHP\$[A-z_][A-z0-9_]*
Detecta palabras entre "{" y "}"\{.*?\}

Uso

if(preg_match($regex, $str))
{
    ECHO 'OK';
}