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