Herramientas de usuario

Herramientas del sitio


clase:daw:daw:2eval:tema07

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
clase:daw:daw:2eval:tema07 [2020/12/17 13:20]
admin [Gestión de Contenedores]
clase:daw:daw:2eval:tema07 [2024/02/05 07:47] (actual)
admin [Gestión de Contenedores]
Línea 16: Línea 16:
   * [[https://www.xataka.com/otros/docker-a-kubernetes-entendiendo-que-contenedores-que-mayores-revoluciones-industria-desarrollo|De Docker a Kubernetes: entendiendo qué son los contenedores y por qué es una de las mayores revoluciones de la industria del desarrollo]]   * [[https://www.xataka.com/otros/docker-a-kubernetes-entendiendo-que-contenedores-que-mayores-revoluciones-industria-desarrollo|De Docker a Kubernetes: entendiendo qué son los contenedores y por qué es una de las mayores revoluciones de la industria del desarrollo]]
   * [[https://www.javiergarzas.com/2015/07/entendiendo-docker.html|Entendiendo Docker. Conceptos básicos: Imágenes, Contenedores, Links…]]   * [[https://www.javiergarzas.com/2015/07/entendiendo-docker.html|Entendiendo Docker. Conceptos básicos: Imágenes, Contenedores, Links…]]
 +
 +===== Datos de servidores =====
 +
 +{{:clase:daw:daw:2eval:datos_proxmox.png?direct|}}
  
 ===== Instalación ===== ===== Instalación =====
Línea 34: Línea 38:
 Para comprobar que todo funciona , lanzar la siguiente orden: Para comprobar que todo funciona , lanzar la siguiente orden:
  
-  sudo docker run hello-world+  sudo docker container run hello-world
  
  
Línea 100: Línea 104:
 | [[https://docs.docker.com/engine/reference/commandline/container_exec/|docker container exec]] | Ejecutar una orden en el contenedor. Normalmente es el Shell | | [[https://docs.docker.com/engine/reference/commandline/container_exec/|docker container exec]] | Ejecutar una orden en el contenedor. Normalmente es el Shell |
 | [[https://docs.docker.com/engine/reference/commandline/container_stats/|docker container stats]] | Mostrar uso de CPU,memoria,etc de los contenedores | | [[https://docs.docker.com/engine/reference/commandline/container_stats/|docker container stats]] | Mostrar uso de CPU,memoria,etc de los contenedores |
 +| [[https://docs.docker.com/engine/reference/commandline/container_logs/|docker container logs]] | Muestra lo que sale por pantalla. Es decir lo que se llama en Linux ''stdout'' y ''stderr''. Normalmente los contenedores van sacando por pantalla lo que hacen.  |
  
 Las dos órdenes mas complejas e importantes para la gestión de los contenedores son: Las dos órdenes mas complejas e importantes para la gestión de los contenedores son:
Línea 107: Línea 111:
  
 ==== docker container run ==== ==== docker container run ====
-Pone en marcha la imagen creando un contenedor.Su forma mas sencilla de usar es ''docker run nombre_imagen''. Aunque prácticamente siempre se usan la mayoría de los siguientes parámetros:+Pone en marcha la imagen creando un contenedor.Su forma mas sencilla de usar es ''docker run container nombre_imagen''. Aunque prácticamente siempre se usan la mayoría de los siguientes parámetros:
   * ''-d'': Indicar que es un servidor (demonio)   * ''-d'': Indicar que es un servidor (demonio)
-  * ''-it'': Si queremos intereactuar en la consola con la aplicación (NO es un demonio). Las opciones **-d** y **-it** son excluyentes.+  * ''-it'': Si queremos interactuar en la consola con la aplicación (NO es un demonio). [[https://stackoverflow.com/questions/41916435/practically-what-is-the-difference-between-docker-run-dit-itd-vs-docker-run|Practically, what is the difference between docker run -dit(-itd) vs docker run -d?]]
   * ''--restart always'' : Añadiremos este flag si queremos que se vuelva a iniciar el contenedor si acaba dicho contenedor. Es útil ya que se iniciará el contenedor si se reinicia la máquina real.   * ''--restart always'' : Añadiremos este flag si queremos que se vuelva a iniciar el contenedor si acaba dicho contenedor. Es útil ya que se iniciará el contenedor si se reinicia la máquina real.
   * ''--name nombreContanedor'': Indica el nombre que va a tener el contenedor. Es muy útil ya que así sabemos cual es cada una de las imágenes.   * ''--name nombreContanedor'': Indica el nombre que va a tener el contenedor. Es muy útil ya que así sabemos cual es cada una de las imágenes.
Línea 116: Línea 120:
   * ''-e nombreVariableDeEntorno:valorVariableDeEntorno'': Permite indicar el valor de una variable de entorno. Es la forma mas común de configurar un contenedor. Se debe mirar la configuración de la imagen para saber las variables a usar ya que es específico de cada imagen.   * ''-e nombreVariableDeEntorno:valorVariableDeEntorno'': Permite indicar el valor de una variable de entorno. Es la forma mas común de configurar un contenedor. Se debe mirar la configuración de la imagen para saber las variables a usar ya que es específico de cada imagen.
   * ''-v carpetaMaquinaReal:carpetaInternaContenedor'': Indica que una carpeta de dentro del contenedor será realmente una carpeta real de nuestra máquina. Se usa para que no se pierdan los datos si borramos la máquina y la volvemos a crear.    * ''-v carpetaMaquinaReal:carpetaInternaContenedor'': Indica que una carpeta de dentro del contenedor será realmente una carpeta real de nuestra máquina. Se usa para que no se pierdan los datos si borramos la máquina y la volvemos a crear. 
 +
  
  
Línea 133: Línea 138:
  
   docker container run \   docker container run \
-     -\+     -dit \
      --restart always \      --restart always \
      -v /opt/mariadb:/var/lib/mysql  \      -v /opt/mariadb:/var/lib/mysql  \
Línea 139: Línea 144:
      -p 4000:3306  \      -p 4000:3306  \
      --name  prueba_mariadb \      --name  prueba_mariadb \
 +     --hostname prueba_mariadb \
      mariadb:10.1      mariadb:10.1
  
Línea 145: Línea 151:
 Lo mas complicado de la orden ''docker container run'' son los parámetros ''-v'' y ''-p'' Lo mas complicado de la orden ''docker container run'' son los parámetros ''-v'' y ''-p''
 </note> </note>
 +
 +=== Más opciones ===
 +Veamos ahora otras opciones de ''docker container exec''
 +
 +  * ''--rm'': Que se borre el contenedor si éste se para.
 +  * ''-w carpeta'': La carpeta en la que se estarán en el contenedor cuando se ejecute algo. Es como hacer un ''cd''
 +  * Otra opción que suelen tener los contenedores, es poder pasar argumentos después del nombre de la imagen. Eso argumentos a veces son realmente argumentos al programa que se va a ejecutar y otras veces es directamente el nombre del programa que se va a ejecutar junto a sus argumentos. Veremos ejemplos de ésto en el siguiente tema
 +
 +<sxh base>
 +  docker container run \
 +     -dit \
 +     --restart always \
 +     --rm \
 +     -w /var/lib/mysql \
 +     -v /opt/mariadb:/var/lib/mysql  \
 +     -e MYSQL_ROOT_PASSWORD=root  \
 +     -p 4000:3306  \
 +     --name  prueba_mariadb \
 +     --hostname prueba_mariadb \
 +     mariadb:10.1
 +</sxh>
 +
 +hemos añadido ''--rm'' para indicar que si el contenedor acaba y se para, que automáticamente también se borre.
 +Y también hemos añadido ''-w /var/lib/mysql'' para //estar// en esa carpeta. Y así por ejemplo si lanzásemos ''docker container exec -it prueba_mariadb ls'', se verían los ficheros de la carpeta ''/var/lib/mysql''.
  
  
Línea 193: Línea 223:
   * El puerto interno 8080 que se vea en la máquina en el puerto 11211   * El puerto interno 8080 que se vea en la máquina en el puerto 11211
   * Que los datos de configuración de Jenkins (en "/var/jenkins_home") se guarden en la carpeta "/opt/prueba_jenkins" de la máquina real en    * Que los datos de configuración de Jenkins (en "/var/jenkins_home") se guarden en la carpeta "/opt/prueba_jenkins" de la máquina real en 
-  * Que el nombre del contenedor sea "Prueba Jenkins"+  * Que el nombre del contenedor sea "prueba_jenkins" 
 +  * Que el nombre DNS sea "jenkins"
   * Que sea un demonio   * Que sea un demonio
  
clase/daw/daw/2eval/tema07.1608207642.txt.gz · Última modificación: 2020/12/17 13:20 por admin