Latest web development tutorials

Acoplable instalar Apache

Un método mediante la construcción de Dockerfile

crear Dockerfile

En primer lugar, crear un directorio de Apache, que se utiliza para almacenar la materia relacionada con la espalda.

w3big@w3big:~$ mkdir -p  ~/apache/www ~/apache/logs ~/apache/conf 

directorio www se asigna al directorio de la aplicación contenedor de configuración de Apache

los registros de Apache en el directorio será asignado al directorio de registro de contenedores

los archivos de configuración del directorio conf se asignan al contenedor Apache archivo de configuración

En el directorio de Apache creado, crear Dockerfile

FROM debian:jessie

# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
#RUN groupadd -r www-data && useradd -r --create-home -g www-data www-data

ENV HTTPD_PREFIX /usr/local/apache2
ENV PATH $PATH:$HTTPD_PREFIX/bin
RUN mkdir -p "$HTTPD_PREFIX" \
	&& chown www-data:www-data "$HTTPD_PREFIX"
WORKDIR $HTTPD_PREFIX

# install httpd runtime dependencies
# https://httpd.apache.org/docs/2.4/install.html#requirements
RUN apt-get update \
	&& apt-get install -y --no-install-recommends \
		libapr1 \
		libaprutil1 \
		libaprutil1-ldap \
		libapr1-dev \
		libaprutil1-dev \
		libpcre++0 \
		libssl1.0.0 \
	&& rm -r /var/lib/apt/lists/*

ENV HTTPD_VERSION 2.4.20
ENV HTTPD_BZ2_URL https://www.apache.org/dist/httpd/httpd-$HTTPD_VERSION.tar.bz2

RUN buildDeps=' \
		ca-certificates \
		curl \
		bzip2 \
		gcc \
		libpcre++-dev \
		libssl-dev \
		make \
	' \
	set -x \
	&& apt-get update \
	&& apt-get install -y --no-install-recommends $buildDeps \
	&& rm -r /var/lib/apt/lists/* \
	\
	&& curl -fSL "$HTTPD_BZ2_URL" -o httpd.tar.bz2 \
	&& curl -fSL "$HTTPD_BZ2_URL.asc" -o httpd.tar.bz2.asc \
# see https://httpd.apache.org/download.cgi#verify
	&& export GNUPGHOME="$(mktemp -d)" \
	&& gpg --keyserver ha.pool.sks-keyservers.net --recv-keys A93D62ECC3C8EA12DB220EC934EA76E6791485A8 \
	&& gpg --batch --verify httpd.tar.bz2.asc httpd.tar.bz2 \
	&& rm -r "$GNUPGHOME" httpd.tar.bz2.asc \
	\
	&& mkdir -p src \
	&& tar -xvf httpd.tar.bz2 -C src --strip-components=1 \
	&& rm httpd.tar.bz2 \
	&& cd src \
	\
	&& ./configure \
		--prefix="$HTTPD_PREFIX" \
		--enable-mods-shared=reallyall \
	&& make -j"$(nproc)" \
	&& make install \
	\
	&& cd .. \
	&& rm -r src \
	\
	&& sed -ri \
		-e 's!^(\s*CustomLog)\s+\S+!\1 /proc/self/fd/1!g' \
		-e 's!^(\s*ErrorLog)\s+\S+!\1 /proc/self/fd/2!g' \
		"$HTTPD_PREFIX/conf/httpd.conf" \
	\
	&& apt-get purge -y --auto-remove $buildDeps

COPY httpd-foreground /usr/local/bin/

EXPOSE 80
CMD ["httpd-foreground"]

Dockerfile archivo httpd-COPIA primer plano / usr / local / bin / httpd-primer plano es una copia del directorio actual en el espejo, el servicio httpd como un script de inicio, por lo que queremos crear un archivo de secuencia de comandos httpd-primer plano a nivel local

#!/bin/bash
set -e

# Apache gets grumpy about PID files pre-existing
rm -f /usr/local/apache2/logs/httpd.pid

exec httpd -DFOREGROUND

Que tiene permisos de archivos ejecutables httpd-primer plano

w3big@w3big:~/apache$ chmod +x httpd-foreground

Crear un espejo a través Dockerfile, reemplazarlo con su propio nombre

w3big@w3big:~/apache$ docker build -t httpd .

Una vez creado, podemos encontrar la imagen que acaba de crear en la lista de réplica local

w3big@w3big:~/apache$ docker images httpd
REPOSITORY     TAG        IMAGE ID        CREATED           SIZE
httpd          latest     da1536b4ef14    23 seconds ago    195.1 MB

Método dos, cargador de muelle de tracción httpd

Encuentra espejo httpd en Hub acoplable

w3big@w3big:~/apache$ docker search httpd
NAME                           DESCRIPTION                  STARS  OFFICIAL AUTOMATED
httpd                          The Apache HTTP Server ..    524     [OK]       
centos/httpd                                                7                [OK]
rgielen/httpd-image-php5       Docker image for Apache...   1                [OK]
microwebapps/httpd-frontend    Httpd frontend allowing...   1                [OK]
lolhens/httpd                  Apache httpd 2 Server        1                [OK]
publici/httpd                  httpd:latest                 0                [OK]
publicisworldwide/httpd        The Apache httpd webser...   0                [OK]
rgielen/httpd-image-simple     Docker image for simple...   0                [OK]
solsson/httpd                  Derivatives of the offi...   0                [OK]
rgielen/httpd-image-drush      Apache HTTPD + Drupal S...   0                [OK]
learninglayers/httpd                                        0                [OK]
sohrabkhan/httpd               Docker httpd + php5.6 (...   0                [OK]
aintohvri/docker-httpd         Apache HTTPD Docker ext...   0                [OK]
alizarion/httpd                httpd on centos with mo...   0                [OK]
...

Aquí tiramos las réplicas oficiales

w3big@w3big:~/apache$ docker pull httpd

Esperar a que se complete la descarga, nos podemos encontrar en el repositorio lista de réplicas locales para el espejo httpd.


Mirroring usando Apache

contenedor de ejecutar

docker run -p 80:80 -v $PWD/www/:/usr/local/apache2/htdocs/ -v $PWD/conf/httpd.conf:/usr/local/apache2/conf/httpd.conf -v $PWD/logs/:/usr/local/apache2/logs/ -d httpd

Comando Descripción:

-p 80:80: se asignarán al puerto host 80 del puerto de contenedores 80

-v $ PWD / www /: / usr / local / apache2 / htdocs /: El anfitrión directorio www en el directorio actual está montado en el contenedor / usr / local / apache2 / htdocs /

-v $ PWD / conf / httpd.conf: /usr/local/apache2/conf/httpd.conf: conf acogerá ficha del directorio / httpd.conf actual para montar el contenedor / usr / local / apache2 / conf /httpd.conf

-v $ PWD / logs /: / usr / local / apache2 / logs /: directorio de registros será el anfitrión del directorio actual está montado en el contenedor / usr / local / apache2 / logs /

Compruebe el contenedor comienza circunstancias

w3big@w3big:~/apache$ docker ps
CONTAINER ID  IMAGE   COMMAND             ... PORTS               NAMES
79a97f2aac37  httpd   "httpd-foreground"  ... 0.0.0.0:80->80/tcp  sharp_swanson

Se accede a través de un navegador