عامل الميناء تثبيت أباتشي
وهناك طريقة عن طريق بناء 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
الوصول إليها من خلال متصفح