Najlepszy samouczek Docker zainstalować Apache W 2024 r. W tym samouczku możesz dowiedzieć się Sposób konstruując Dockerfile,Sposób drugi, doker ciągnąć httpd,Mirroring za pomocą apache,

Docker zainstalować Apache

Sposób konstruując Dockerfile

Tworzenie Dockerfile

Po pierwsze, stworzenie katalogu apache, używany do przechowywania kopii związanych rzeczy.

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

katalog www będą odwzorowane do konfiguracji Apache katalogu aplikacji kontenera

Apache loguje katalogu zostaną odwzorowane na katalogu dziennika pojemnika

pliki konfiguracyjne w katalogu conf są przypisane do kontenera apache pliku konfiguracyjnego

Do utworzonego katalogu apache, tworzyć 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 pl \
	&& 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 Skopiuj plik httpd-planie / usr / local / bin / httpd-planie jest kopią aktualnego katalogu do lustra, usługa httpd jako skrypt startowy, więc chcemy stworzyć skrypt httpd-przedpole lokalnie

#!/bin/bash
set -e

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

exec httpd -DFOREGROUND

Biorąc pod uwagę uprawnienia do pliku wykonywalnego httpd-planie

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

Tworzenie lustro przez Dockerfile, zastąpić go własnym nazwiskiem

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

Po utworzeniu, możemy znaleźć właśnie utworzony w lokalnej liście odbicie lustrzane

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

Sposób drugi, doker ciągnąć httpd

Znajdź lustro httpd na Docker Hub

w3big@w3big:~/apache$ docker search httpd
NAME                           DESCRIPTION                  STARS  OFFICIAL AUTOMATED
httpd                          The Apache HTTP Server pl    524     [OK]       
centos/httpd                                                7                [OK]
rgielen/httpd-image-php5       Docker image for Apachepl.   1                [OK]
microwebapps/httpd-frontend    Httpd frontend allowingpl.   1                [OK]
lolhens/httpd                  Apache httpd 2 Server        1                [OK]
publici/httpd                  httpd:latest                 0                [OK]
publicisworldwide/httpd        The Apache httpd webserpl.   0                [OK]
rgielen/httpd-image-simple     Docker image for simplepl.   0                [OK]
solsson/httpd                  Derivatives of the offipl.   0                [OK]
rgielen/httpd-image-drush      Apache HTTPD + Drupal Spl.   0                [OK]
learninglayers/httpd                                        0                [OK]
sohrabkhan/httpd               Docker httpd + php5.6 (pl.   0                [OK]
aintohvri/docker-httpd         Apache HTTPD Docker extpl.   0                [OK]
alizarion/httpd                httpd on centos with mopl.   0                [OK]
pl.

Tutaj możemy wyciągnąć oficjalnych serwerów

w3big@w3big:~/apache$ docker pull httpd

Poczekaj, aż pobieranie zostanie ukończone, możemy znaleźć w lokalnym repozytorium listy lustro lustro httpd.


Mirroring za pomocą apache

uruchom kontenerów

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

Polecenie Opis:

-p 80:80: będą mapowane do gniazda przyjmującego 80 od portu pojemnika 80

-v $ PWD / www /: / usr / local / apache2 / htdocs /: Gospodarz katalog www w katalogu bieżącym jest zamontowana do pojemnika / usr / local / apache2 / htdocs /

-v $ PWD / conf / httpd.conf: /usr/local/apache2/conf/httpd.conf: conf odbędzie bieżącego pliku w katalogu / httpd.conf zamontować zbiornik / usr / local / apache2 / conf /httpd.conf

-v $ PWD / logs /: / usr / local / apache2 / logs /: kłody katalogu odbędzie bieżący katalog jest zamontowany do pojemnika / usr / local / apache2 / logs /

Sprawdź pojemnik zaczyna okoliczności

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

Dostęp przez przeglądarkę

Docker zainstalować Apache
10/30