Herramientas de usuario

Herramientas del sitio


clase:daw:daw:2eval:tema08

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
Próxima revisión Ambos lados, revisión siguiente
clase:daw:daw:2eval:tema08 [2024/02/03 23:16]
admin [Creación de imágenes]
clase:daw:daw:2eval:tema08 [2024/02/04 12:33]
admin [Creación de imágenes]
Línea 44: Línea 44:
 # Expone un puerto en el contenedor # Expone un puerto en el contenedor
 EXPOSE puerto EXPOSE puerto
 +
 +#El directorio de trabajo
 +WORKDIR /directorio
  
 # Define variables de entorno # Define variables de entorno
Línea 85: Línea 88:
 </sxh> </sxh>
  
 +- **WORKDIR**: Establece el directorio de trabajo para cualquier instrucción posterior en el Dockerfile.
  
 +<sxh>
 +WORKDIR /opt/app
 +</sxh>
  
 - **ENV**: Define variables de entorno dentro del contenedor. - **ENV**: Define variables de entorno dentro del contenedor.
Línea 105: Línea 112:
 Las diferencias entre ''RUN'' y ''CMD'' es que ''RUN'' se ejecuta cuando se crea la imagen con el comando ''docker build'' ,es decir configurándola mientras que ''CMD'' se ejecuta cuando se crea el contenedor con el comando ''docker container run'' Las diferencias entre ''RUN'' y ''CMD'' es que ''RUN'' se ejecuta cuando se crea la imagen con el comando ''docker build'' ,es decir configurándola mientras que ''CMD'' se ejecuta cuando se crea el contenedor con el comando ''docker container run''
 </note> </note>
 +
 +==== Ejemplo: Ejecutar app java ====
 +  * Una imagen basada en el JDK 17 
 +  * Copia el fichero de la máquina real que está en ''/opt/peliculas/target/japp.jar'' dentro de loa imagen en la carpeta ''/opt/app''
 +  * Ejecuta el japp.jar
  
 <sxh base> <sxh base>
Línea 110: Línea 122:
 RUN mkdir /opt/app RUN mkdir /opt/app
 COPY /opt/peliculas/target/japp.jar /opt/app COPY /opt/peliculas/target/japp.jar /opt/app
-EXPOSE 8080 +CMD ["sh", "-c" , "-jar","/opt/app/japp.jar"]
-ENV ENTORNO=produccion +
-CMD ["java", "-jar","/opt/app/japp.jar"]+
 </sxh> </sxh>
  
  
 ===== Docker Compose ===== ===== Docker Compose =====
-Docker Compose es una herramienta que permite definir y administrar aplicaciones Docker de múltiples contenedores. Utiliza un archivo YAML para configurar los servicios, las redes y los volúmenes, facilitando la definición y el despliegue de aplicaciones complejas.+Docker Compose es una herramienta que permite definir y administrar aplicaciones Docker de múltiples contenedores. Utiliza un archivo [[https://es.wikipedia.org/wiki/YAML|YAML]] para configurar los servicios, las redes y los volúmenes, facilitando la definición y el despliegue de aplicaciones complejas.
  
 ==== Estructura Básica de un archivo docker-compose.yml ==== ==== Estructura Básica de un archivo docker-compose.yml ====
  
-Un archivo `docker-compose.ymldefine la configuración de una aplicación multi-contenedor. Aquí se presentan las secciones principales:+Un archivo ''docker-compose.yml'' define la configuración de una aplicación multi-contenedor. Aquí se presentan las secciones principales:
  
 <sxh> <sxh>
Línea 145: Línea 155:
 ==== Comandos Básicos de Docker Compose ==== ==== Comandos Básicos de Docker Compose ====
  
-  - Iniciar la aplicación basada en la configuración de `docker-compose.yml`.+  - Iniciar la aplicación basada en la configuración de ''docker-compose.yml''.
  
 <sxh bash> <sxh bash>
Línea 151: Línea 161:
 </sxh> </sxh>
  
-  - Detener y eliminar los contenedores definidos en el archivo `docker-compose.yml`.+  - Detener y eliminar los contenedores definidos en el archivo ''docker-compose.yml''.
  
 <sxh bash> <sxh bash>
Línea 157: Línea 167:
 </sxh> </sxh>
  
-- Muestra el estado de los contenedores definidos en el archivo `docker-compose.yml`.+- Muestra el estado de los contenedores definidos en el archivo ''docker-compose.yml''.
  
 <sxh bash> <sxh bash>
Línea 165: Línea 175:
 ==== Ejemplo de Uso ==== ==== Ejemplo de Uso ====
  
-Supongamos un archivo `docker-compose.ymlpara una aplicación web con un servicio de frontend y otro de base de datos:+Supongamos un archivo ''docker-compose.yml'' para una aplicación web con un servicio de frontend y otro de base de datos:
  
 <sxh> <sxh>
clase/daw/daw/2eval/tema08.txt · Última modificación: 2024/05/10 19:51 por admin