Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /furanet/sites/piloto.foc.es/web/htdocs/wp-content/plugins/gravityforms/common.php on line 1121

Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /furanet/sites/piloto.foc.es/web/htdocs/wp-content/plugins/gravityforms/common.php on line 1158

Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /furanet/sites/piloto.foc.es/web/htdocs/wp-content/plugins/gravityforms/common.php on line 1162

Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /furanet/sites/piloto.foc.es/web/htdocs/wp-content/plugins/gravityforms/common.php on line 1184

Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /furanet/sites/piloto.foc.es/web/htdocs/wp-content/plugins/gravityforms/common.php on line 2853

Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /furanet/sites/piloto.foc.es/web/htdocs/wp-content/plugins/gravityforms/common.php on line 2860

Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /furanet/sites/piloto.foc.es/web/htdocs/wp-content/plugins/gravityforms/common.php on line 2873
{"id":6219,"date":"2021-10-06T18:26:09","date_gmt":"2021-10-06T16:26:09","guid":{"rendered":"https:\/\/www.foc.es\/?p=6219"},"modified":"2021-10-06T18:26:09","modified_gmt":"2021-10-06T16:26:09","slug":"borrador-automatico-4","status":"publish","type":"post","link":"http:\/\/piloto.foc.es\/2021\/10\/06\/6219-borrador-automatico-4.html","title":{"rendered":"Ejecutar Servidor Apache con Docker"},"content":{"rendered":"

Cuando queremos desplegar un proyecto web, acudimos a instalar un servidor de p\u00e1ginas web que nos permita alojar dicho proyecto (para nuestro caso de hoy un servidor con Apache). Existen varios servidores de este tipo, no vamos a enumerarlos todos, pero los mas conocidos son Apache, Nginx e IIS de Microsoft.<\/p>\r\n

Apache y Nginx son multiplataforma y de c\u00f3digo abierto mientras que el servidor IIS de Microsoft lo tenemos de forma privativa y para Windows.<\/p>\r\n

Ahora bien, cuando queremos \u201ctrasladar\u201d nuestro proyecto para llevarlo a un ordenador ajeno, aparte del c\u00f3digo del proyecto, debemos tener ademas el servidor de p\u00e1ginas web configurado, con el quebradero que ademas puede surgir con las versiones instaladas, la posible configuraci\u00f3n que tenga, etc\u2026<\/p>\r\n

Ya muy posiblemente estemos pensando en virtualizar una m\u00e1quina para transportar el c\u00f3digo con el servidor instalado y configurado, pero virtualizar una m\u00e1quina implica tener instalado en el mismo un sistema operativo completo y eso reduce considerablemente el rendimiento y aparte el tama\u00f1o del proyecto se incrementa enormemente.<\/p>\r\n

La idea de Docker es la de empaquetar el m\u00ednimo software necesario para su funcionamiento. Estamos hablando de que para Apache ser\u00e1 necesario (aparte de todos los componentes que integran la aplicaci\u00f3n, librerias, etc\u2026) un sistema operativo liviano (Alpine Linux es un conocido que ocupa unos 5 megas aprox.) con todo lo necesario de modo que la aplicaci\u00f3n pueda ser lanzada sin problema.<\/p>\r\n

A estos paquetes se los llama contenedores y se pueden lanzar multiples contenedores de Apache simult\u00e1neamente sin ver recaer demasiado el rendimiento de la m\u00e1quina.<\/p>\r\n

En el caso de tener varios contenedores con un contenido similar, el espacio usado en com\u00fan no se duplica en espacio de disco duro.<\/p>\r\n

Con Docker ademas podemos lanzar varias versiones de un servicio y a la misma vez, pudiendo desplegar tu proyecto y actualizarlo con un peque\u00f1o cambio.<\/p>\r\n

Adem\u00e1s de \u201ctrasladar\u201d el proyecto, con Docker podemos instalar un sistema operativo configurado con alg\u00fan servicio r\u00e1pidamente (vsftpd, httpd, oracle, mysql, python, postgres, nginx, mongo, mariadb, wordpress, tomcat, etc\u2026 incluso sistemas operativos como Ubuntu, Debian, Fedora, y un largo etc\u2026)<\/strong><\/p>\r\n

Instalaci\u00f3n de Docker<\/p>\r\n

Instalaci\u00f3n Docker desde Linux basado en Debian<\/h2>\r\n

Para instalar Docker en una m\u00e1quina Linux, recurrimos a la terminal de comandos actualizando primeramente el listado de repositorios del sistema con:<\/p>\r\n

# sudo apt update<\/strong><\/p>\r\n

\"\"<\/p>\r\n

Instalamos los paquetes previos necesarios para permitir a apt descargar a trav\u00e9s de HTTPS:<\/p>\r\n

# sudo apt install apt-transport-https ca-certificates curl software-properties-common<\/strong><\/p>\r\n

\"\"<\/p>\r\n

A\u00f1adimos  la clave del repositorio oficial de Docker:<\/p>\r\n

# curl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | sudo apt-key add –<\/strong><\/p>\r\n

Y adem\u00e1s a\u00f1adimos al listado de repositorios del sistema, la url del repositorio que Docker:<\/p>\r\n

# sudo add-apt-repository \u00abdeb [arch=amd64] https:\/\/download.docker.com\/linux\/ubuntu focal stable\u00bb<\/strong><\/p>\r\n

\"\"<\/p>\r\n

Actualizamos nuevamente el contenido de los repositorios del sistema que ahora ya incluye a Docker:<\/p>\r\n

sudo apt update<\/strong><\/p>\r\n

\"\"<\/p>\r\n

Y finalmente instalamos Docker:<\/p>\r\n

sudo apt install docker-ce<\/strong><\/p>\r\n

\"\"<\/p>\r\n

 <\/h1>\r\n

Instalaci\u00f3n Docker desde Windows<\/h1>\r\n

Desde Windows es algo m\u00e1s sencillo, tan solo dirigirse a la siguiente url con el navegador web https:\/\/docs.docker.com\/desktop\/windows\/install\/<\/a> , descargarse Docker Desktop for Windows <\/strong>y ejecutarlo.<\/p>\r\n

\"\"<\/p>\r\n

Realizamos una comprobaci\u00f3n para ver si est\u00e1 funcionando correctamente, verificando la versi\u00f3n de Docker instalado en el equipo (en com\u00fan tanto para Linux como para Windows):<\/p>\r\n

docker -v<\/strong><\/p>\r\n

\"\"<\/p>\r\n

Y realizamos otra peque\u00f1a prueba del funcionamiento de Docker descargando y ejecutando una aplicaci\u00f3n escrita en C con un hello-world:<\/p>\r\n

docker run hello-world<\/strong><\/p>\r\n

\"\"<\/p>\r\n

Visto el correcto funcionamiento de Docker, procedemos ahora s\u00ed a la descarga e instalaci\u00f3n de httpd (que as\u00ed es como se llama Apache en DockerHub) a su \u00faltima versi\u00f3n disponible:<\/p>\r\n

docker run -p 8080:80 httpd<\/strong><\/p>\r\n

\"\"<\/p>\r\n

El comando ejecutado docker run -p 8080:80 httpd <\/strong>descargar\u00e1 la imagen de Apache,  \u2013p sirve para redireccionar el puerto f\u00edsco 8080 por el 80 de la imagen del contenedor de Apache y httpd es el nombre del contenedor a descargar:<\/p>\r\n

Para comprobar que Apache esta funcionando tan s\u00f3lo tenemos que abrir un navegador web y probar con localhost:8080<\/strong><\/p>\r\n

\"\"<\/p>\r\n

Para lanzarlo como un demonio (un servicio) lo hacemos a\u00f1adiendo un -d<\/strong><\/p>\r\n

docker run -d -p 8080:80 httpd<\/strong><\/p>\r\n

\"\"<\/p>\r\n

Ahora para acceder al directorio \/htdocs<\/strong> del contenedor lo har\u00edamos con:<\/p>\r\n

docker exec \u2013ti 9db \/bin\/bash      <\/strong><\/p>\r\n

\"\"<\/p>\r\n

Siendo 9db los tres primeros caracteres devueltos en la screen anterior con la id del demonio generado (es un numero aleatorio)<\/p>\r\n

Accedemos a la carpeta htdocs<\/strong> y vemos el archivo index.html<\/strong><\/p>\r\n

\"\"<\/p>\r\n

As\u00ed mismo podemos acceder a la configuraci\u00f3n de Apache en \/etc\/apache2<\/strong><\/p>\r\n

\"\"<\/p><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"

Cuando queremos desplegar un proyecto web, acudimos a instalar un servidor de p\u00e1ginas web que nos permita alojar dicho proyecto (para nuestro caso de hoy un servidor con Apache). Existen varios servidores de este tipo, no vamos a enumerarlos todos, pero los mas conocidos son Apache, Nginx e IIS de Microsoft. Apache y Nginx son multiplataforma y de c\u00f3digo abierto mientras que el servidor IIS de Microsoft lo tenemos de forma privativa y para Windows. Ahora bien, cuando queremos \u201ctrasladar\u201d nuestro proyecto para llevarlo a un ordenador ajeno, aparte del c\u00f3digo del proyecto, debemos tener ademas el servidor de p\u00e1ginas web configurado, con el quebradero que ademas puede surgir con las versiones instaladas, la posible configuraci\u00f3n que tenga, etc\u2026 Ya muy posiblemente estemos pensando en virtualizar una m\u00e1quina para transportar el c\u00f3digo con el servidor instalado y configurado, pero virtualizar una m\u00e1quina implica tener instalado en el mismo un sistema operativo completo y eso reduce considerablemente el rendimiento y aparte el tama\u00f1o del proyecto se incrementa enormemente. La idea de Docker es la de empaquetar el m\u00ednimo software necesario para su funcionamiento. Estamos hablando de que para Apache ser\u00e1 necesario (aparte de todos los componentes que integran la aplicaci\u00f3n, librerias, […]<\/p>\n","protected":false},"author":3,"featured_media":6239,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":""},"categories":[1],"tags":[],"jetpack_featured_media_url":"http:\/\/piloto.foc.es\/wp-content\/uploads\/2021\/10\/logo.png","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":5668,"url":"http:\/\/piloto.foc.es\/2021\/06\/11\/5668-servidor-web-apache-securizacion.html","url_meta":{"origin":6219,"position":0},"title":"Servidor Web Apache. Securizaci\u00f3n","date":"11 junio, 2021","format":false,"excerpt":"Al finalizar esta sesi\u00f3n ser\u00e1s capaz de: Securizaci\u00f3n b\u00e1sica de Apache Contenidos de la sesi\u00f3n: Para poder conseguir los objetivos previstos en la sesi\u00f3n trataremos los siguientes contenidos con un enfoque pr\u00e1ctico Recorrido de directorios Permisos especiales Archivos especiales en apache Revisa todos los seminarios pendientes y si lo deseas\u2026","rel":"","context":"En \u00abActualidad Tecnol\u00f3gica\u00bb","img":{"alt_text":"","src":"https:\/\/i2.wp.com\/piloto.foc.es\/wp-content\/uploads\/2021\/05\/Servidor-Web-Apache.-Securizacion.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":5669,"url":"http:\/\/piloto.foc.es\/2021\/06\/18\/5669-servidor-web-apache-modulo-security.html","url_meta":{"origin":6219,"position":1},"title":"Servidor Web Apache. M\u00f3dulo Security","date":"18 junio, 2021","format":false,"excerpt":"Al finalizar esta sesi\u00f3n ser\u00e1s capaz de: Instalar m\u00f3dulos en Apache Configurar de forma avanzada un modulo Contenidos de la sesi\u00f3n: Para poder conseguir los objetivos previstos en la sesi\u00f3n trataremos los siguientes contenidos con un enfoque pr\u00e1ctico Recorrido de directorios Comandos de gesti\u00f3n b\u00e1sicos en Apache Revisa todos los\u2026","rel":"","context":"En \u00abActualidad Tecnol\u00f3gica\u00bb","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/piloto.foc.es\/wp-content\/uploads\/2021\/05\/Servidor-Web-Apache.-Modulo-Security.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":5667,"url":"http:\/\/piloto.foc.es\/2021\/06\/07\/5667-servidor-web-apache-instalacion.html","url_meta":{"origin":6219,"position":2},"title":"Servidor Web Apache. Instalaci\u00f3n","date":"7 junio, 2021","format":false,"excerpt":"Al finalizar esta sesi\u00f3n ser\u00e1s capaz de: Identificar las herramientas b\u00e1sicas de administraci\u00f3n de Linux Conocer los distintos directorios de Apache Conocer los archivos esenciales de Apache Contenidos de la sesi\u00f3n: Para poder conseguir los objetivos previstos en la sesi\u00f3n trataremos los siguientes contenidos con un enfoque pr\u00e1ctico Instalaci\u00f3n de\u2026","rel":"","context":"En \u00abActualidad Tecnol\u00f3gica\u00bb","img":{"alt_text":"","src":"https:\/\/i2.wp.com\/piloto.foc.es\/wp-content\/uploads\/2021\/05\/Servidor-Web-Apache.-Instalacion.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":5670,"url":"http:\/\/piloto.foc.es\/2021\/06\/25\/5670-servidor-web-apache-certificados-digitales.html","url_meta":{"origin":6219,"position":3},"title":"Servidor Web Apache. Certificados digitales","date":"25 junio, 2021","format":false,"excerpt":"Al finalizar esta sesi\u00f3n ser\u00e1s capaz de: Instalar m\u00f3dulos en Apache Creaci\u00f3n de un certificado digital autofirmado y uso en un dominio seguro Contenidos de la sesi\u00f3n: Para poder conseguir los objetivos previstos en la sesi\u00f3n trataremos los siguientes contenidos con un enfoque pr\u00e1ctico Recorrido de directorios Instalar m\u00f3dulos en\u2026","rel":"","context":"En \u00abActualidad Tecnol\u00f3gica\u00bb","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/piloto.foc.es\/wp-content\/uploads\/2021\/05\/Servidor-Web-Apache.-Certificados-digitales.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":382,"url":"http:\/\/piloto.foc.es\/2010\/07\/08\/382-ya-esta-disponible-la-nueva-version-de-apache-tomcat-7-0-0.html","url_meta":{"origin":6219,"position":4},"title":"Ya est\u00e1 disponible la nueva Versi\u00f3n de Apache Tomcat 7.0.0","date":"8 julio, 2010","format":false,"excerpt":"Desde el \"Apache Software Foundation\" nos informan que ya tienen disponible la nueva versi\u00f3n del servidor web Apache Tomcat 7.0.0. En esta primera versi\u00f3n se ha incluido el soporte para las especificaciones de Servlet 3.0, JSP 2.2 y EL 2.2. Tambien se han incluido mejoras para detectar y prevenir \"fugas\u2026","rel":"","context":"En \u00abActualidad Tecnol\u00f3gica\u00bb","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":6569,"url":"http:\/\/piloto.foc.es\/2022\/06\/29\/6569-montar-un-servidor-web-con-symfony-en-docker.html","url_meta":{"origin":6219,"position":5},"title":"Montar un servidor web con Symfony en Docker","date":"29 junio, 2022","format":false,"excerpt":"Symfony es un framework PHP gratuito para el desarrollo aplicaciones web y es aparte uno de los mas utilizados por los desarrolladores de aplicaciones por la gran escalabilidad que ofrece y por la gran comunidad que la mantiene en todo el mundo.Si te est\u00e1s preguntando que necesito para comenzar a\u2026","rel":"","context":"En \u00abActualidad Tecnol\u00f3gica\u00bb","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/piloto.foc.es\/wp-content\/uploads\/2022\/06\/logo-2.png?resize=350%2C200","width":350,"height":200},"classes":[]}],"jetpack_shortlink":"https:\/\/wp.me\/p6jO3Y-1Cj","amp_validity":null,"amp_enabled":true,"_links":{"self":[{"href":"http:\/\/piloto.foc.es\/wp-json\/wp\/v2\/posts\/6219"}],"collection":[{"href":"http:\/\/piloto.foc.es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/piloto.foc.es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/piloto.foc.es\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/piloto.foc.es\/wp-json\/wp\/v2\/comments?post=6219"}],"version-history":[{"count":7,"href":"http:\/\/piloto.foc.es\/wp-json\/wp\/v2\/posts\/6219\/revisions"}],"predecessor-version":[{"id":6241,"href":"http:\/\/piloto.foc.es\/wp-json\/wp\/v2\/posts\/6219\/revisions\/6241"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/piloto.foc.es\/wp-json\/wp\/v2\/media\/6239"}],"wp:attachment":[{"href":"http:\/\/piloto.foc.es\/wp-json\/wp\/v2\/media?parent=6219"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/piloto.foc.es\/wp-json\/wp\/v2\/categories?post=6219"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/piloto.foc.es\/wp-json\/wp\/v2\/tags?post=6219"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}