Linux - تثبيت Docker وإدارة حاويات Lucee وApache
Docker عبارة عن منصة برمجية تسمح ببناء التطبيقات واختبارها ونشرها بسرعة. عامل ميناء؛ حزم البرامج في وحدات قياسية تسمى الحاويات، والتي تحتوي على كل ما يحتاجه البرنامج للتشغيل، بما في ذلك المكتبات وأدوات النظام والتعليمات البرمجية ووقت التشغيل. توضح هذه المقالة كيفية تثبيت Docker على Linux Ubuntu، وإدارة حاويات Lucee وApache باستخدام ملف Docker Compose، وتثبيتها باستخدام Workcloud.
تثبيت Docker
قبل بدء العمل، إذا كان هناك تثبيت Docker سابق على الخادم، فيجب إزالة هذا التثبيت. يمكن تشغيل الأمر التالي لهذا الغرض.
الأمر:
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker Containerd runc؛ افعل Sudo apt-get إزالة $pkg؛ تم
لتثبيت Docker، يجب تشغيل الأوامر التالية على التوالي.
1. يتم تنزيل حزم Docker باستخدام مدير الحزم apt.
-
sudo apt-get update
-
sudo apt-get install ca-certificates curl
-
sudo install -m 0755 -d /etc/apt/keyrings
-
sudo cur -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
2. قم بوصف مستودع عامل الإرساء لمدير الحزم apt.
- echo \ "deb [arch=$(dpkg --print-architecture) Sign-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(./etc/os-release && echo "$VERSION_CODENAME") مستقر" | \
- Sudo Tee /etc/apt/sources.list.d/docker.list > /dev/null
- sudo apt-get update
3. بدأ تثبيت حزم Docker.
- تصحيح
- docker –version
- docker compose version
الأوامر المستخدمة في إدارة Docker و Compose
- يسترد قائمة الحاويات بأكملها.
الأمر: docker ds / docker Container ls - إعادة تشغيل خدمة Docker.
الأمر: sudo systemctl Restart docker - تحديث خدمة Docker.
الأمر: sudo systemctl reload docker - إعادة تشغيل الإنشاء.
الأمر: عامل الإرساء يؤلف إعادة التشغيل
الأمر: عامل الإرساء يؤلف إعادة تشغيل Apache2 - يدخل الحاوية.
الأمر: docker compose exec apache bash
بعد اكتمال عمليات تثبيت Docker، يتم إنشاء دليل المشروع وملفات DockerFile وdocker-compose.yml.
1. يتم إنشاء دليل إنشاء Docker: lucee-Apache-docker
2. يتم إنشاء مجلدين للتطبيق فيه ويتم إضافة Dockerfile بشكل منفصل.
-
Apache
-
lucee
3. يتم إنشاء ملف docker-compose.yml ويتم وصف إعدادات الحاوية. يجب أن يكون محتوى ملف الإنشاء كما يلي.
الخدمات:
Apache:
build: ./Apache
image: ubuntu/Apache2:latest
container_name: Apache-app
المنافذ:
- "80:80"
- "443:443"
المجلدات:
- ./webroot:/var/www
- ./apache/apache2.conf:/etc/apache2/apache2.conf
- ./Apache/sites-available:/etc/Apache2/sites-available
- ./apache/bash/start-apache.sh:/usr/local/bin/start-apache.sh
- ./apache/bash/enable-sites.sh:/usr/local/bin/enable-sites.sh
نقطة الإدخال: ["/usr/local/bin/start-apache.sh"،"/usr/local/bin/enable-sites.sh"]
depends_on:
- لوسي
الشبكات:
- شبكة التطبيقات
lucee:
build: ./lucee
image: lucee/lucee:6.0
container_name: lucee-app
المنافذ:
- "8888:8888"
المجلدات:
- ./webroot:/var/www
- ./lucee/tomcat/conf/server.xml:/usr/local/tomcat/conf/server.xml
- ./apache/sites-available:/etc/apache2/sites-available
البيئة:
- LUCEE_ADMIN_PASSWORD=qwerty
الشبكات:
- شبكة التطبيقات
الشبكات:
شبكة التطبيقات:
driver: Bridge
4. يتم إنشاء مجلد webroot في نفس الدليل ويتم فتح مجلد باسم Workcloud في هذا المجلد لاستنساخ Workcloud
بعد الانتهاء من هذه العمليات، ستكون بنية الدليل على النحو التالي.
إعدادات Apache
1. يتم إنشاء Apache DockerFile: يجب أن يكون محتوى DockerFile كما يلي؛
وفقًا للتعليمة البرمجية التالية؛
تم تثبيت أحدث إصدار من صورة عامل الإرساء Apache2.
تم تثبيت الحزم apt وca-certificates وcurl وgit.
يتم نسخ ملفات mod_cfml إلى الحاوية.
تم تفعيل حزم a2enmod وssl وrewrite وproxy وmod_cfml.
من ubuntu/Apache2: الأحدث
تشغيل apt-get update && apt-get install -y ca-certificates curl git
نسخ ./mods-available/mod_cfml.so /usr/lib/Apache2/modules/mod_cfml.so
نسخ ./mods-available/mod_cfml.load /etc/apache2/mods-available/mod_cfml.load
نسخ ./mods-available/mod_cfml.conf /etc/apache2/mods-available/mod_cfml.conf
# تمكين الوحدات
RUN يعيد a2enmod ssl كتابة رؤوس proxy_http mod_cfml
2. من خلال إنشاء ملف apache2.conf، تتم كتابة ملف apache2.conf قياسي في محتويات هذا الملف.
3. تم إجراء إعدادات وكيل Apache2 Lucee: تتم إضافة الرموز التالية إلى أسفل ملف apache2.conf. ProxyPreserveHost على
ProxyPassMatch ^/(.+\.cf[cm])(/.*)?$ http://lucee-app:8888/$1$2
ProxyPassMatch ^/(.+\.cfml)(/.*)?$ http://lucee-app:8888/$1$2
ProxyPassReverse / http://lucee-app:8888/
يجب أن يكون محتوى DockerFile الذي تم تعيينه بواسطة RequestHeader كما يلي.
وفقًا للكود أدناه؛
تم تثبيت الإصدار 6.0 من Lucee.
تم تثبيت الحزم apt وca-certificates وcurl وgit.
يتم نسخ إعدادات تكوين Lucee Tomcat في الحاوية.
من lucee/lucee:6.0RUN apt-get update && apt-get install -y ca-certificates curl git
نسخة ./tomcat/lib/mod_cfml-valve_v1.1.11.jar /usr/local/tomcat/lib/mod_cfml-valve_v1.1.11.jar
COPY ./tomcat/lib/servlet-filter-utils-1.1.1.jar /usr/local/tomcat/lib/servlet-filter-utils-1.1.1.jar
الدليل يجب أن يكون الهيكل الناتج عن جميع المجلدات وحفظ الملفات على النحو التالي.