Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/Docker/contenedorVsImagen»
De WikiEducator
(8 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 45: | Línea 45: | ||
<div class="slide"> | <div class="slide"> | ||
− | + | ===Crear un contenedor=== | |
*Hay varias formas de crear un contenedor, y vamos poco a poco a aprenderlas según vayamos necesitando | *Hay varias formas de crear un contenedor, y vamos poco a poco a aprenderlas según vayamos necesitando | ||
{{MRM_Puntos clave|Title= Crear un contenedor| | {{MRM_Puntos clave|Title= Crear un contenedor| | ||
Línea 136: | Línea 136: | ||
docker ps -a | docker ps -a | ||
</source> | </source> | ||
− | |||
</div> | </div> | ||
+ | |||
+ | |||
<div class="slide"> | <div class="slide"> | ||
<!--8------------------------------------------------------> | <!--8------------------------------------------------------> | ||
− | ;Terminal en el contenedor: interactivamente: <span class=resaltado>docker run -ti ..../span> | + | ;Terminal en el contenedor: interactivamente: <span class=resaltado>docker run -ti ....</span> |
*Con el contenedor creado previamente podemos ejectura acciones, pero si queremos interactuar con él, debemos de permitir abrir un terminal y establecer interacción | *Con el contenedor creado previamente podemos ejectura acciones, pero si queremos interactuar con él, debemos de permitir abrir un terminal y establecer interacción | ||
− | *Para ello hemos de aportar el parámetro '''''-t''''' para poder abrir terminal y '''''-i''''' para interactuar | + | *Para ello hemos de aportar el parámetro '''''-t''''' para poder abrir terminal y '''''-i''''' para interactuar, lo podemos escribir junto o separado |
<source lang=bash> | <source lang=bash> | ||
docker run -ti --name web ubuntu:latest | docker run -ti --name web ubuntu:latest | ||
+ | #Da lo mismo escribirlo así | ||
+ | docker run -t -i --name web ubuntu:latest | ||
</source> | </source> | ||
</div> | </div> | ||
− | + | ||
− | + | <!--10------------------------------------------------------> | |
− | < | + | |
− | + | ||
− | + | ||
− | + | ||
<div class="slide"> | <div class="slide"> | ||
====Estableciendo un forward o mapeando puertos==== | ====Estableciendo un forward o mapeando puertos==== | ||
;Situación: | ;Situación: | ||
*Ahora tenemos un docker. Podremos acceder a él a través de la ip, ya que se ha creado una red interna entre el anfitrión y el contenedor. | *Ahora tenemos un docker. Podremos acceder a él a través de la ip, ya que se ha creado una red interna entre el anfitrión y el contenedor. | ||
− | *La configuración de la red, se puede establecer, en linux, por defecto suele empezar con la red '''''172.17.0.0''''', por lo que se crea la siguiente situación | + | *La configuración de la red, se puede establecer, en linux, por defecto suele empezar con la red '''''172.17.0.0''''', por lo que se crea la siguiente situación (imagen siguiente). |
+ | </div> | ||
+ | <div class="slide"> | ||
+ | ;Estableciendo un forward o mapeando puertos | ||
+ | |||
[[Archivo:Docker_forward_1.png|200px|center]] | [[Archivo:Docker_forward_1.png|200px|center]] | ||
</div> | </div> | ||
+ | |||
+ | |||
+ | <!--11------------------------------------------------------> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
;Estableciendo un forward o mapeando puertos | ;Estableciendo un forward o mapeando puertos | ||
*Si en el docker tenemos instalado un servidor web, como va a ser nuestro caso, y queremos que atienda nuestras solicitudes, sería fácil acceder a él a través de la ip. | *Si en el docker tenemos instalado un servidor web, como va a ser nuestro caso, y queremos que atienda nuestras solicitudes, sería fácil acceder a él a través de la ip. | ||
*Pero se presenta un problema en sistema windows y si queremos acceder a nuestro docker, desde otra máquina, ya que la red es interna, y en windows no se permite acceder al docker por ip. | *Pero se presenta un problema en sistema windows y si queremos acceder a nuestro docker, desde otra máquina, ya que la red es interna, y en windows no se permite acceder al docker por ip. | ||
+ | </div> | ||
+ | |||
+ | |||
+ | <!--11------------------------------------------------------> | ||
+ | |||
+ | <div class="slide"> | ||
+ | |||
+ | ;Estableciendo un forward o mapeando puertos | ||
*La solución es mapear o realizar un fordward de puertos, de modo que estableceremos un puerto en nuestro anfitrión (el valor que queramos asignar por encima del 1024) que mapearemos al puerto 80 o 443 de nuestro docker, de manera que todas las solicitudes que reciba nuestro anfitrión se redirigan al servidor web del docker. | *La solución es mapear o realizar un fordward de puertos, de modo que estableceremos un puerto en nuestro anfitrión (el valor que queramos asignar por encima del 1024) que mapearemos al puerto 80 o 443 de nuestro docker, de manera que todas las solicitudes que reciba nuestro anfitrión se redirigan al servidor web del docker. | ||
− | |||
[[Archivo:docker_forward_2.png|400px|center]] | [[Archivo:docker_forward_2.png|400px|center]] | ||
</div> | </div> | ||
+ | |||
+ | |||
+ | <!--12------------------------------------------------------> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
− | ;Estableciendo un forward o mapeando puertos <span class=resaltado>docker run -p puerto_anfitrion:puerto:docker ...</span> | + | ;Estableciendo un forward o mapeando puertos <br/><span class=resaltado>docker run -p puerto_anfitrion:puerto:docker ...</span> |
<source lang=php> | <source lang=php> | ||
#Primero borramos el docker que teníamos | #Primero borramos el docker que teníamos | ||
docker rm web | docker rm web | ||
#Lo volvemos a crear, mapeando puertos | #Lo volvemos a crear, mapeando puertos | ||
− | docker run -ti -p 8080:80 --name web ubuntu: | + | docker run -ti -p 8080:80 --name web ubuntu:latest |
</source> | </source> | ||
</div> | </div> | ||
+ | |||
+ | <!--13------------------------------------------------------> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
====Compartiendo carpetas entre anfitrión y docker==== | ====Compartiendo carpetas entre anfitrión y docker==== | ||
Línea 184: | Línea 206: | ||
*Esos recursos van a ser programas de php que escribiremos | *Esos recursos van a ser programas de php que escribiremos | ||
*Usaremos un EDI, por ejemplo phpstorm, para crear dichos recursos, pero el EDI, no lo vamos a ejectuar dentro del docker, sino en nuestra máquina anfitriona | *Usaremos un EDI, por ejemplo phpstorm, para crear dichos recursos, pero el EDI, no lo vamos a ejectuar dentro del docker, sino en nuestra máquina anfitriona | ||
− | |||
</div> | </div> | ||
+ | |||
+ | <!--13------------------------------------------------------> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
+ | ;Compartiendo carpetas entre anfitrión y docker | ||
+ | [[Archivo:docker_compartir_carpeta_1.png|250px|center]] | ||
+ | </div> | ||
+ | |||
+ | |||
+ | <!--14------------------------------------------------------> | ||
+ | |||
+ | <div class="slide"> | ||
;Compartiendo carpetas entre anfitrión y docker | ;Compartiendo carpetas entre anfitrión y docker | ||
*Vamos a crear una carpeta compartida entre anfitrión y contenedor | *Vamos a crear una carpeta compartida entre anfitrión y contenedor | ||
*De forma que todo lo que haya en esa carpeta y creemos en el anfitrión, estará disponible en el contenedor | *De forma que todo lo que haya en esa carpeta y creemos en el anfitrión, estará disponible en el contenedor | ||
*La acción es bidireccional, todo lo que haya y creemos en el contenedor, estará disponible en el anfitrión | *La acción es bidireccional, todo lo que haya y creemos en el contenedor, estará disponible en el anfitrión | ||
− | [[Archivo: | + | [[Archivo:docker_compartir_carpeta_2.png|400px|center]] |
</div> | </div> | ||
+ | |||
+ | |||
+ | <!--15------------------------------------------------------> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
− | + | ;Estableciendo un forward o mapeando puertos <br /><span class=resaltado>docker run -v dir/anfitrion:/dir/contenedor ...</span> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | ;Estableciendo un forward o mapeando puertos <span class=resaltado>docker run -v dir/anfitrion:/dir/contenedor ...</span> | + | |
<source lang=php> | <source lang=php> | ||
#Primero borramos el docker que teníamos | #Primero borramos el docker que teníamos | ||
Línea 208: | Línea 238: | ||
docker run -ti -p 8080:80 -v /home/user/docker:/var/www/html --name web ubuntu:latest</span> | docker run -ti -p 8080:80 -v /home/user/docker:/var/www/html --name web ubuntu:latest</span> | ||
</source> | </source> | ||
+ | </div> | ||
+ | |||
+ | |||
+ | <!--15------------------------------------------------------> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ;Estableciendo un forward o mapeando puertos | ||
{{nota| | {{nota| | ||
*Se creará un directorio en local según especificquemos | *Se creará un directorio en local según especificquemos | ||
Línea 216: | Línea 253: | ||
</div> | </div> | ||
+ | <!--16------------------------------------------------------> | ||
<div class="slide"> | <div class="slide"> | ||
Línea 222: | Línea 260: | ||
;PHP | ;PHP | ||
;xdebug | ;xdebug | ||
+ | *Para ello vamos a la sección de instalación del sistem y realizamos las instalaciones correspondientes | ||
<source lang=bash> | <source lang=bash> | ||
docker run -ti --name web ubuntu:latest | docker run -ti --name web ubuntu:latest |
Última revisión de 04:39 8 nov 2022