User Tools

Site Tools


apuntes:docker

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
apuntes:docker [2017/09/20 11:48] Santiago Faciapuntes:docker [2023/04/14 11:06] (current) – [Eliminar la caché] Santiago Faci
Line 8: Line 8:
  
 Docker permite empaquetar y lanzar una aplicación en un entorno totalmente aislado llamado contenedor. Estos contenedores se ejecutan directamente sobre el kernel de la máquina por lo que son mucho más ligeros que las máquinas virtuales. De esa manera podemos ejecutar mucho más contenedores para el mismo equipo que si éstos fueran maquina virtuales. De esta manera, podemos probar rapidamente uestra aplicación web, por ejemplo, en múltiples entornos distintos al de donde nos encontramos desarrollando. Realmente es mucho más rápido que hacerlo en una máquina virtual, puesto que reduce el tiempo de carga y el espacio requerido por cada uno de estos contenedores o máquinas. Docker permite empaquetar y lanzar una aplicación en un entorno totalmente aislado llamado contenedor. Estos contenedores se ejecutan directamente sobre el kernel de la máquina por lo que son mucho más ligeros que las máquinas virtuales. De esa manera podemos ejecutar mucho más contenedores para el mismo equipo que si éstos fueran maquina virtuales. De esta manera, podemos probar rapidamente uestra aplicación web, por ejemplo, en múltiples entornos distintos al de donde nos encontramos desarrollando. Realmente es mucho más rápido que hacerlo en una máquina virtual, puesto que reduce el tiempo de carga y el espacio requerido por cada uno de estos contenedores o máquinas.
 +
 +Incluso existe un repositorio, el [[http://hub.docker.com|Hub de Docker]], donde podemos encontrar imágenes de máquinas que podemos directamente descargar y ejecutar como contenedores. De esa forma, podemos, con un solo comando, lanzar una máquina con la configuración exacta a la que necesitamos para probar nuestro sitio web, aplicación web o cualquier desarrollo en el que estemos trabajando. 
 +
 +En las siguienes imágenes se compara la arquitectura de Docker y la de un sistema basado en máquinas virtuales. Se puede observar que, al eliminar la necesidad de un Sistema Operativo invitado, los contenedores de Docker son mucho más ligeros. En la práctica, se puede apreciar claramente como la velocidad de creación y arranque de estos contenedores es claramente superior a la de cualquier máquina virtual, sobre todo porque en cada contenedor podremos decidir que capas instalar contando sólo con lo estrictamente necesario.
  
 <figure> <figure>
Line 14: Line 18:
 {{ apuntes:container.png?320}} {{ apuntes:container.png?320}}
 <caption>Máquina virtual vs Contenedor</caption></figure> <caption>Máquina virtual vs Contenedor</caption></figure>
- 
-Incluso existe un repositorio, el [[http://hub.docker.com|Hub de Docker]], donde podemos encontrar imágenes de máquinas que podemos directamente descargar y ejecutar como contenedores. De esa forma, podemos, con un solo comando, lanzar una máquina con la configuración exacta a la que necesitamos para probar nuestro sitio web, aplicación web o cualquier desarrollo en el que estemos trabajando.  
  
 <figure> <figure>
Line 57: Line 59:
 COPY src /var/www/html COPY src /var/www/html
 </file> </file>
 +
 +De esta forma tendremos una carpeta cuyo contenido será el fichero ''Dockerfile'' que acabamos de crear y la carpeta ''src'' con el sitio web que queremos probar
 +
 +<code bash>
 +santi@zenbook:$ ls
 +Dockerfile src
 +</code>
  
 A continuación, ya podemos crear la imagen, ejecutando el siguiente comando, donde aprovechamos para etiquetarla como ''miapache-php'': A continuación, ya podemos crear la imagen, ejecutando el siguiente comando, donde aprovechamos para etiquetarla como ''miapache-php'':
Line 78: Line 87:
 cddaac5f61ab: Pull complete  cddaac5f61ab: Pull complete 
 1d7adb8f245d: Pull complete  1d7adb8f245d: Pull complete 
-Digest: sha256:917ceda30c70ebb682536a1f091f25a8364d61c72c332396e8331feef389128a+Digest: sha256:917ceda30c70ebb682536a1f091f25a8364d61c72c3323. . .
 Status: Downloaded newer image for php:7.0-apache Status: Downloaded newer image for php:7.0-apache
  ---> b123b973e3e8  ---> b123b973e3e8
Line 283: Line 292:
 santi@zenbook:$ docker inspect --format "{{.NetworkSettings.Ports}}{{ .Mounts}}" miapache santi@zenbook:$ docker inspect --format "{{.NetworkSettings.Ports}}{{ .Mounts}}" miapache
 map[80/tcp:[{0.0.0.0 5555}]][{bind  /var/www/unsitioweb /usr/local/apache2/htdocs   true }] map[80/tcp:[{0.0.0.0 5555}]][{bind  /var/www/unsitioweb /usr/local/apache2/htdocs   true }]
 +</code>
 +
 +===== Varios =====
 +
 +==== Eliminar la caché ====
 +
 +Eliminará la cache del proceso de construcción de las imágenes. Asi podemos forzar que vuelva a descargar todos los ficheros y realizar todos los pasos como si fuera la primera vez.
 +
 +<code bash>
 +santi@zenbook:$ docker builder prune
 </code> </code>
  
apuntes/docker.1505908134.txt.gz · Last modified: 2019/01/04 13:02 (external edit)