Le meilleur didacticiel Docker installer Apache en 2024, dans ce didacticiel, vous pouvez apprendre Procédé de construction d'Dockerfile,Méthode deux, docker traction httpd,Reflétant en utilisant apache,

Docker installer Apache

Procédé de construction d'Dockerfile

Créer Dockerfile

Tout d'abord, créer un apache répertoire utilisé pour stocker des trucs liés à dos.

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

répertoire www sera mappé sur le répertoire de l'application de conteneur de configuration apache

apache logs sera mappé sur le répertoire des journaux de conteneur

les fichiers de configuration du répertoire conf sont mappés sur le conteneur apache du fichier de configuration

Dans le répertoire apache créé, créez 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#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 fr \
	&& 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 fichier COPY httpd-plan / usr / local / bin / httpd-plan est une copie du répertoire courant vers le miroir, le service httpd comme un script de démarrage, nous voulons donc créer un fichier de script httpd-plan local

#!/bin/bash
set -e

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

exec httpd -DFOREGROUND

permissions fichier exécutables httpd-plan Étant donné

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

Créer un miroir à travers Dockerfile, remplacez-le avec votre propre nom

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

Une fois créé, nous pouvons trouver l'image que vous venez de créer dans la liste de miroir local

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

Méthode deux, docker traction httpd

Trouver miroir httpd sur Docker Hub

w3big@w3big:~/apache$ docker search httpd
NAME                           DESCRIPTION                  STARS  OFFICIAL AUTOMATED
httpd                          The Apache HTTP Server fr    524     [OK]       
centos/httpd                                                7                [OK]
rgielen/httpd-image-php5       Docker image for Apachefr.   1                [OK]
microwebapps/httpd-frontend    Httpd frontend allowingfr.   1                [OK]
lolhens/httpd                  Apache httpd 2 Server        1                [OK]
publici/httpd                  httpd:latest                 0                [OK]
publicisworldwide/httpd        The Apache httpd webserfr.   0                [OK]
rgielen/httpd-image-simple     Docker image for simplefr.   0                [OK]
solsson/httpd                  Derivatives of the offifr.   0                [OK]
rgielen/httpd-image-drush      Apache HTTPD + Drupal Sfr.   0                [OK]
learninglayers/httpd                                        0                [OK]
sohrabkhan/httpd               Docker httpd + php5.6 (fr.   0                [OK]
aintohvri/docker-httpd         Apache HTTPD Docker extfr.   0                [OK]
alizarion/httpd                httpd on centos with mofr.   0                [OK]
fr.

Ici, nous retirons les miroirs officiels

w3big@w3big:~/apache$ docker pull httpd

Attendez que le téléchargement est terminé, nous pouvons être trouvés dans le dépôt de la liste de miroir local pour miroir de httpd.


Reflétant en utilisant apache

conteneur Run

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

Commande Description:

-p 80:80: sera mappé sur le port hôte 80 du port de conteneurs 80

-v $ PWD / www /: / usr / local / apache2 / htdocs /: Le répertoire www hôte dans le répertoire courant est monté sur le conteneur / usr / local / apache2 / htdocs /

-v $ PWD / conf / httpd.conf: /usr/local/apache2/conf/httpd.conf: conf sera l' hôte fichier actuel répertoire / httpd.conf pour monter le conteneur / usr / apache2 / conf / local /httpd.conf

-v $ PWD / logs /: / usr / local / apache2 / logs /: logs accueillera le répertoire courant est monté sur le conteneur / usr / local / apache2 / logs /

Vérifier le conteneur commence circonstances

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

Accessibles par un navigateur

Docker installer Apache
10/30