InformáticaLinuxSin categoría

Dockers con Apache primeros pasos

como siempre vamos a la documentacion de dockers

https://hub.docker.com/_/httpd

docker pull httpd

Una vez instalado lo ejecutamos en segundo plano con el flag -d

docker run -d httpd

con dockers ps podemos controlar su ejecucion

Vemos que esta corriendo por el puerto 80 pero no lo hemos dejado accesible

para dejarlo accesible tenemos que correr el docker así

docker run -p 8080:80 -d httpd

docker run (puerto -p destino:origen -d segundo plano http nombre del servicio

ahora si accedemos a la ip del servidor y añadimos el puerto 8080 lo podemos ver corriendo.

¿Que pasa si queremos editar la pagina?

si ejecutamos una sesión interactiva

docker exec -it 90e3ce7f2e2a sh

90e3ce7f2e2a = a mi ID de contenedor… y vamos a

notaremos que no podemos ejecutar ni vi ni vim ni nano, por ello iniciaremos mejor la sesion con docker exec -it 90e3ce7f2e2a /bin/bash

e instalaremos con normalidad actualizando primero repositos

apt-get update

apt-get install nano

¿Que pasa si se para el contenedor y lo volvemos a iniciar?

(spoiler se borra todo…)

docker ps (listamos)

docker stop 90e3ce7f2e2a (paramos el id)

docker run -p 8080:80 -d httpd (iniciamos)


todo desde 0

docker ps (porque cambia el id)

Tampoco tenemos instalado nano

Sesiones persistentes

he creado una estructura de carpetas donde guardar las sesiones en el equipo anfitrión /home/jotacee/dockerjc/apache

y ahora el flag -v creara la magia -v «path»:»path donde guardaremos la info en el contendedor»

https://hub.docker.com/_/httpd (en la documentación oficial veremos donde guardarlo)

docker run -p 8080:80 -v /home/jotacee/dockerjc/apache:/usr/local/apache2/htdocs/ -d httpd

miramos el id nuevo con docker ps e iniciamos sesión interactiva con bash

docker exec -it 2cf736796ac9 /bin/bash

volvemos a instalar nano

apt-get update

apt-get install nano

cd htdocs

creamos un nuevo index.html con nano

paramos el docker y lo volvemos a ejecutar

docker ps para buscar el id

docker stop ID

iniciamos el contenedo

docker run -p 8080:80 -v /home/jotacee/dockerjc/apache:/usr/local/apache2/htdocs/ -d httpd

todo funcionando como antes

En la maquina local en la carpeta creada veremos la misma info

y esta información es bidireccional, si la modificamos se modifica en el contenedor

salu2

Deja una respuesta