Latest web development tutorials

عامل الميناء تثبيت أباتشي

وهناك طريقة عن طريق بناء Dockerfile

إنشاء Dockerfile

أولا، إنشاء اباتشي دليل، وتستخدم لتخزين الاشياء المتعلقة الظهر.

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

سيتم تعيين دليل شبكة الاتصالات العالمية إلى دليل التطبيق حاوية التكوين اباتشي

اباتشي بتسجيل سيتم تعيين الدليل إلى الدليل سجل الحاويات

يتم تعيين ملفات التكوين دليل أسيوط إلى الحاوية اباتشي ملف التكوين

في دليل اباتشي خلق، خلق 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 ملف نسخة هتبد-المقدمة / البيرة / المحلية / بن / هتبد-المقدمة هي نسخة من الدليل الحالي إلى المرآة، وخدمة هتبد كبرنامج نصي بدء التشغيل، لذلك نحن نريد لإنشاء ملف نصي هتبد-المقدمة محليا

#!/bin/bash
set -e

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

exec httpd -DFOREGROUND

أذونات الملف القابل للتنفيذ هتبد المقدمة نظرا

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

إنشاء مرآة من خلال Dockerfile، والاستعاضة عنها مع الاسم الخاص بك

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

وبمجرد إنشاء، يمكننا العثور على الصورة التي تم إنشاؤها فقط في قائمة مرآة المحلية

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

أسلوب اثنين، عامل ميناء سحب هتبد

البحث مرآة هتبد على عامل الميناء المحور

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]
...

نحن هنا سحب المرايا الرسمية

w3big@w3big:~/apache$ docker pull httpd

انتظر اكتمال التحميل، فإننا يمكن العثور عليها في قائمة مرآة المحلي مستودع للمرآة هتبد.


يعكس استخدام اباتشي

حاوية تشغيل

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

الأمر الوصف:

-p 80:80: سيتم تعيينها إلى ميناء المضيف 80 من ميناء الحاويات 80

-v $ الأشخاص ذوي الإعاقة / على شبكة الاتصالات العالمية /: / البيرة / المحلية / apache2 / htdocs /: هي التي شنت على المضيف دليل www في الدليل الحالي إلى حاوية / البيرة / المحلية / apache2 / htdocs /

-v $ الأشخاص ذوي الإعاقة / أسيوط / httpd.conf ل: /usr/local/apache2/conf/httpd.conf: سوف أسيوط تستضيف ملف الدليل / ملف httpd.conf الحالي لتحميل الحاويات / البيرة / المحلية / apache2 / أسيوط /httpd.conf

-v $ الأشخاص ذوي الإعاقة / السجلات /: / البيرة / المحلية / apache2 / السجلات /: سجلات يتم تحميل دليل ستستضيف الدليل الحالي إلى حاوية / البيرة / المحلية / apache2 / السجلات /

تحقق الحاوية تبدأ الظروف

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

الوصول إليها من خلال متصفح