Das beste Docker installieren Apache-Tutorial im Jahr 2024. In diesem Tutorial können Sie Verfahren nach Dockerfile Konstruieren,Methode zwei, Docker Pull httpd,Mirroring Apache mit, lernen

Docker installieren Apache

Verfahren nach Dockerfile Konstruieren

erstellen Sie Dockerfile

Erstellen Sie zunächst ein Verzeichnis Apache, zum Speichern Back-related stuff.

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

www-Verzeichnis wird auf der Apache-Konfigurationscontainer Anwendungsverzeichnis zugeordnet werden

Apache-Logs Verzeichnis wird dem Container-Protokollverzeichnis zugeordnet werden

Konfigurationsdateien conf werden in die Konfigurationsdatei Apache Container abgebildet

In den Apache-Verzeichnis erstellt, erstellen 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 de \
	&& 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 Datei COPY httpd- Vordergrund / usr / local / bin / httpd-Vordergrund ist eine Kopie des aktuellen Verzeichnisses auf den Spiegel, der httpd-Dienst als Startup-Skript, so wollen wir eine Skriptdatei httpd- Vordergrund lokal erstellen

#!/bin/bash
set -e

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

exec httpd -DFOREGROUND

Da httpd- Vordergrund ausführbare Datei Berechtigungen

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

Erstellen Sie einen Spiegel durch Dockerfile, ersetzen Sie es mit Ihrem eigenen Namen

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

Einmal erstellt, können wir das Bild finden Sie nur in der lokalen Spiegelliste erstellt

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

Methode zwei, Docker Pull httpd

Finden httpd Spiegel auf Docker Hub

w3big@w3big:~/apache$ docker search httpd
NAME                           DESCRIPTION                  STARS  OFFICIAL AUTOMATED
httpd                          The Apache HTTP Server de    524     [OK]       
centos/httpd                                                7                [OK]
rgielen/httpd-image-php5       Docker image for Apachede.   1                [OK]
microwebapps/httpd-frontend    Httpd frontend allowingde.   1                [OK]
lolhens/httpd                  Apache httpd 2 Server        1                [OK]
publici/httpd                  httpd:latest                 0                [OK]
publicisworldwide/httpd        The Apache httpd webserde.   0                [OK]
rgielen/httpd-image-simple     Docker image for simplede.   0                [OK]
solsson/httpd                  Derivatives of the offide.   0                [OK]
rgielen/httpd-image-drush      Apache HTTPD + Drupal Sde.   0                [OK]
learninglayers/httpd                                        0                [OK]
sohrabkhan/httpd               Docker httpd + php5.6 (de.   0                [OK]
aintohvri/docker-httpd         Apache HTTPD Docker extde.   0                [OK]
alizarion/httpd                httpd on centos with mode.   0                [OK]
de.

Hier ziehen wir die offiziellen Spiegel

w3big@w3big:~/apache$ docker pull httpd

Warten, bis der Download abgeschlossen ist, können wir in der lokalen Spiegelliste REPOSITORY für httpd Spiegel gefunden werden.


Mirroring Apache mit

Laufbehälter

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

Befehl Beschreibung:

-p 80:80: wird 80 an den Host - Port 80 des Containerhafens abgebildet werden

-v $ PWD / www /: / usr / local / apache2 / htdocs /: Das Verzeichnis www - Host im aktuellen Verzeichnis an dem Behälter montiert ist / usr / local / apache2 / htdocs /

-v $ PWD / conf / httpd.conf: /usr/local/apache2/conf/httpd.conf: conf werden aktuelle Verzeichnis / httpd.conf Gastgeber der Container / usr / local / apache2 / conf zu montieren /httpd.conf

-v $ PWD / logs /: / usr / local / apache2 / logs /: Protokollverzeichnis wird das aktuelle Verzeichnis Host an dem Behälter montiert ist / usr / local / apache2 / logs /

Überprüfen Sie die Behälter Umstände beginnt

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

Zugänglich über einen Browser

Docker installieren Apache
10/30