diff --git a/_posts/docker_conceptos/2025-03-28-docker_basico.md b/_posts/docker_conceptos/2025-03-28-docker_basico.md new file mode 100755 index 00000000..4769332a --- /dev/null +++ b/_posts/docker_conceptos/2025-03-28-docker_basico.md @@ -0,0 +1,130 @@ +--- +layout: single +title: Docker Básico +date: 2025-03-28 +classes: wide +toc: true +toc_label: "Tabla de contenido" +toc_icon: "clipboard-list" +header: + teaser: /assets/images/llama.jpg +categories: + - docker + - docker-basico + - docker-comandos +tags: + - docker-install + - docker-ps + - docker-mysql + - docker-volume +--- + +## Concepto + +* Comando que se utiliza en sistemas operativos basados en Linux (como Ubuntu) para instalar Docker Compose. + +``` +sudo apt install docker-compose +``` + +* Comando para comprobar la versión con la que se esta trabajando + +``` +docker-compose --version +``` + +* Comando que ejecuta un contenedor Docker para una base de datos MySQL + +``` +sudo docker run -d --rm --name mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql +``` + +Aquí está el desglose de lo que hace cada parte: + +``` +-d: Ejecuta el contenedor en segundo plano (modo "detached"). + +--rm: Elimina el contenedor automáticamente después de que se detenga. + +--name mysql: Asigna el nombre "mysql" al contenedor. + +-e MYSQL_ROOT_PASSWORD=root: Establece la contraseña para el usuario root de MySQL como "root". + +-p 3306:3306: Mapea el puerto 3306 del contenedor al puerto 3306 del host, permitiendo el acceso a MySQL desde el exterior. + +mysql: Especifica la imagen de Docker que se utilizará (en este caso, la imagen oficial de MySQL). +``` + +* Comando que se utiliza para listar los contenedores Docker que están actualmente en ejecución en tu sistema. + +``` +docker ps +``` + +* Comando que se utiliza para detener un contenedor Docker que esté en ejecución + +``` +docker stop +``` + +* Comando que se utiliza para acceder al interior del contenedor Docker llamado "mysql" y abrir una sesión interactiva en el shell del contenedor. + +``` +docker exec -it mysql bash +``` + +Aquí está el desglose: + +``` +docker exec: Ejecuta un comando dentro de un contenedor en ejecución. + +-it: Estas opciones combinadas habilitan un modo interactivo: + +-i mantiene la entrada estándar activa. + +-t asigna un terminal pseudo-TTY (para una interacción en el shell). + +mysql: Es el nombre del contenedor al que quieres acceder. + +bash: Especifica que deseas abrir el shell Bash dentro del contenedor. +``` + +* Comando que se utiliza para conectar al servidor MySQL desde el terminal. + +``` +mysql -uroot -proot +``` + +Aquí está el desglose de lo que significa: + +``` +mysql: Ejecuta el cliente MySQL, que permite interactuar con la base de datos. + +-u root: Especifica el usuario con el que te quieres conectar, en este caso, root, que es el usuario administrador de MySQL. + +-p root: Proporciona la contraseña del usuario root. Aquí, la contraseña también es root +``` + +* Este comando se utiliza para ejecutar un contenedor de Docker que aloja una instancia de phpMyAdmin, una herramienta gráfica para gestionar bases de datos MySQL. + +``` +docker run --name phpmyadmin -v phpmyadmin_data:/etc/phpmyadmin/config.user.inc.php --link mysql:db -p 82:80 -d phpmyadmin +``` + +Aquí está el desglose: + +``` +**`docker run`**: Inicia un nuevo contenedor con los parámetros que sigan. + +**`--name phpmyadmin`**: Da el nombre `phpmyadmin` al contenedor. + +**`-v phpmyadmin_data:/etc/phpmyadmin/config.user.inc.php`**: Monta un volumen llamado `phpmyadmin_data` en el contenedor, enlazado al archivo de configuración personalizado de phpMyAdmin. + +**`--link mysql:db`**: Crea un enlace entre el contenedor `phpmyadmin` y el contenedor `mysql`, asignándole el alias `db` para que phpMyAdmin pueda comunicarse con la base de datos MySQL. + +**`-p 82:80`**: Mapea el puerto 80 del contenedor al puerto 82 del sistema anfitrión, permitiendo acceder a phpMyAdmin en `http://localhost:82`. + +**`-d`**: Ejecuta el contenedor en segundo plano (modo "detached"). + +**`phpmyadmin`**: Utiliza la imagen oficial de phpMyAdmin desde Docker Hub. +``` \ No newline at end of file diff --git a/_posts/javaEE/java_dao/2022-11-02-javaEE-dao.md b/_posts/javaEE/java_dao/2022-11-02-javaEE-dao.md index 6bd4be4b..ea76b967 100755 --- a/_posts/javaEE/java_dao/2022-11-02-javaEE-dao.md +++ b/_posts/javaEE/java_dao/2022-11-02-javaEE-dao.md @@ -36,7 +36,7 @@ page_css: * Ofrecer una ``interfaz`` sencillas en ciertas partes de la aplicación -> Necesario cuando se utilizan API de bajo nivel como JDBC en las que las operaciones sobre la base de datos conllevan utilización de sentencias SQL que queremos aislar de otras capas de la aplicación +> Necesario cuando se utilizan API de bajo nivel como **JDBC** en las que las operaciones sobre la base de datos conllevan utilización de sentencias **SQL** que queremos aislar de otras capas de la aplicación ## Utilidad @@ -46,17 +46,17 @@ page_css: * ``Métodos`` del ``DAO`` que se **emparejan** con las operaciones ``CRUD`` - 1. **C** → ``Create`` + 1. **C** → **``Create``** - 2. **R** → ``Read`` + 2. **R** → **``Read``** - 3. **U** → ``Update`` + 3. **U** → **``Update``** - 4. **D** → ``Delete`` + 4. **D** → **``Delete``** > Actúa de intermediario entre la aplicación y la base de datos -* ``Clases DAO`` habrá una por ``entidad`` o ``tabla`` de la ``base de datos`` y tendremos ``métodos`` para realizar ``consultas genéricas`` o ``adaptadas`` a nuestra ``lógica de negocio`` +* **``Clases DAO``** habrá una por **``entidad``** o **``tabla``** de la **``base de datos``** y tendremos **``métodos``** para realizar **``consultas genéricas``** o **``adaptadas``** a nuestra **``lógica de negocio``** ```java package project.orm.manager.dao; @@ -113,9 +113,11 @@ public interface Dao { } ``` -* **Patrón de diseño** que proporciona una ``interface abstracta`` hacia algún tipo de base de datos mediante otro mecanismo de ``persistencia`` +* **Patrón de diseño** - > **Patrón** aplicable a la mayoría de los **lenguajes de programación** que necesitan uso de la **persistencia** y **conexión** con una **base de datos** asociados a las aplicaciones ``Java EE`` y las ``base de datos relacionales`` a las que se accede mediante las ``API`` de ``JDBC`` + * Proporciona una ``interface abstracta`` hacia algún tipo de base de datos mediante otro mecanismo de ``persistencia`` + +> **Patrón** aplicable a la mayoría de los **lenguajes de programación** que necesitan uso de la **persistencia** y **conexión** con una **base de datos** asociados a las aplicaciones ``Java EE`` y las ``base de datos relacionales`` a las que se accede mediante las ``API`` de ``JDBC`` * Asignar llamadas de aplicaciones de ``capa de persistencia (DAO)`` proporciona especificas operaciones de datos sin especificar detalles de la ``base de datos`` @@ -153,9 +155,9 @@ como apoyar las necesidades de la ``DBMS especifico`` , un esquema de ``base de ## Herramientas Populares de los ORM para realizar DAO -1. Frameworks : ``Hibernate, iBATIS`` +1. **Frameworks** : ``Hibernate, iBATIS`` -2. Library : ``JPA, como Apache OpenJPA`` +2. **Library** : ``JPA, como Apache OpenJPA`` ## Casos de uso diff --git a/_posts/javaSE/buffer/2023-05-18-java-IO-NIO.md b/_posts/javaSE/buffer/2023-05-18-java-IO-NIO.md index 28e13f5c..f6d50c19 100755 --- a/_posts/javaSE/buffer/2023-05-18-java-IO-NIO.md +++ b/_posts/javaSE/buffer/2023-05-18-java-IO-NIO.md @@ -40,13 +40,13 @@ page_css: * ``Java IO`` es un ``paquete`` orientado a ``secuencias`` - * Significa + * **Significa** * Que puede ``leer`` uno o más ``bytes`` a la vez desde una ``secuencia`` * ``Java NIO`` es un paquete orientado al ``buffer`` - * Significa + * **Significa** * Que los ``datos`` se leen en un ``buffer`` desde el cual se procesan más utilizando un canal @@ -54,7 +54,7 @@ page_css: * ``Java IO`` es un ``IO`` de **bloqueo** - * Significa + * **Significa** * Que si un ``subproceso`` está ``invocando`` una ``operación`` de ``lectura`` o ``escritura`` ese ``subproceso`` **se bloquea** hasta que haya algunos ``datos`` para ``leer`` o los ``datos estén`` completamente escritos @@ -64,7 +64,7 @@ page_css: * ``Java NIO`` es un ``IO`` **sin bloqueo** - * Significa + * **Significa** * Que si un ``subproceso`` está ``invocando`` una ``operación`` de ``lectura`` o ``escritura`` ese ``subproceso`` **no se bloquea** hasta que haya algunos ``datos`` para ``leer`` o los ``datos`` estén completamente ``escritos`` en lugar de que el ``subproceso`` continúe con otra cosa \ No newline at end of file diff --git a/_posts/javaSE/clases/clases_conceptos/2022-04-17-java-clase-concepto.md b/_posts/javaSE/clases/clases_conceptos/2022-04-17-java-clase-concepto.md index 989e534c..ee986801 100755 --- a/_posts/javaSE/clases/clases_conceptos/2022-04-17-java-clase-concepto.md +++ b/_posts/javaSE/clases/clases_conceptos/2022-04-17-java-clase-concepto.md @@ -93,7 +93,7 @@ public Persona(){ ### Modificador final -* Una clase con el modificador ``final`` no permite la creación de objetos +* Una **clase** con el modificador ``final`` no permite la **creación** de **objetos** ```java // Modificador "final" establece claramente la intención diff --git a/_posts/javaSE/objetos/2022-04-14-java-objeto.md b/_posts/javaSE/objetos/2022-04-14-java-objeto.md index d3f578c9..483047be 100755 --- a/_posts/javaSE/objetos/2022-04-14-java-objeto.md +++ b/_posts/javaSE/objetos/2022-04-14-java-objeto.md @@ -87,7 +87,7 @@ page_css: ### Proceso de creación de un Objeto -1. Declaración +1. **Declaración** * Declarar la variable de **tipo de clase** * Esta **variable** **no define** un **objeto** , simplemente es una **variable** que puede **referirse** a un **objeto** @@ -102,7 +102,7 @@ page_css: Gato gato; // Se ha declarado una referencia a un objeto de tipo Coche ``` -2. Instanciación e Inicialización +2. **Instanciación** e **Inicialización** * Ahora le asignaremos una **copia física** del **objeto** con el que estamos trabajando y le **asignaremos** la **variable** anteriormente **declarada** que define el **tipo de dato/objeto** que sera @@ -209,7 +209,7 @@ System.out.println(caja2.alto); ### Desvinculación de un objeto -* Si ambas variables de instancia como 'caja1' y 'caja2' **apuntan/referencia** al mismo objeto , no estarán vinculadas o enlazadas de ninguna otra manera posible +* Si ambas variables de instancia como **'caja1'** y **'caja2'** *apuntan/referencia* al mismo *objeto* , no estarán *vinculadas* o *enlazadas* de ninguna otra manera posible ```java // Declaración e instanciación de las "variable de instancia" de la clase Caja @@ -221,4 +221,6 @@ Caja caja2 = caja1; caja1 = null; ``` -* Nota : Cuando pasamos la **referencia** de un **objeto** a un **método**, el **parámetro** que lo recibe se referirá al **mismo objeto** al que hace **referencia** el **argumento** no al de la **clase** que lo instancio +* Nota + + * Cuando pasamos la **referencia** de un **objeto** a un **método**, el **parámetro** que lo recibe se referirá al **mismo objeto** al que hace **referencia** el **argumento** no al de la **clase** que lo instancio