ما هو Portainer؟
Portainer عبارة عن منصة قوية ومفتوحة المصدر لإدارة الحاويات تتيح لك إنشاء بيئات Docker وإدارتها وصيانتها بسهولة. أدناه هو العمارة بورتاينر.
ما هو Traefik؟
Traefik هو وكيل عكسي سهل وديناميكي وتلقائي وسريع مفتوح المصدر وموازن التحميل للتطبيقات المستندة إلى HTTP وTCP.
مبدأ عمل Traefik والحاوية موضح أدناه.
يجب تثبيت Docker قبل بدء تثبيت Portainer.
- Sudo apt-get Remove docker docker-engine docker.io Containerd runc
- Sudo apt-get update
- sudo apt-get install \
- sudo mkdir -m 0755 -p /etc/apt/keyrings
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- echo \
تحديث حزم apt وتثبيت أحدث الإصدارات لمحرك Docker وcontainerd وdocker compose؛
- sudo apt-get تحديث
- sudo apt-get install docker-ce docker-ce-cli Containerd.io docker-buildx-plugin docker-compose-plugin
- sudo docker run hello-world
تثبيت Traefik وPortainer
نظام ملفات ببنية مشابهة لتلك الموجودة أدناه create;
- الدليل الرئيسي حيث سيتم تخزين جميع العناصر المتعلقة بـ Docker:
/home/ubuntu/docker
- Core مع docker-compose لـ Traefik و Portainer الدليل:
- تكوين Traefik files
- هذا الملف مخصص لتخزين جميع الشهادات Used
- تكوين Traefik file
- تكوين بورتينر files
قم بتشغيل الأوامر التالية في الجهاز واحدًا تلو الآخر لإنشاء الملفات؛
- mkdir -p /home/ubuntu/docker/core/traefik-data
- mkdir -p /home/ubuntu/docker/core/portainer-data
- touch /home/ubuntu/docker/core/traefik-data/acme.json
- chmod 600 مفتوح /home/ubuntu/docker/core/traefik-data/acme.json
- المس /home/ubuntu/docker/core/traefik-data/traefik.yml
traefik.yml وقم بتحريره على النحو التالي. استبدل email@example.com بعنوان بريدك الإلكتروني https:
العنوان: ":443"
المزودون:
عامل الإرساء:
نقطة النهاية: "unix:///var/run/docker.sock"
مكشوف بواسطة الافتراضي: false
certificatesResolvers:
http:
acme:
البريد الإلكتروني: email@example.com
التخزين: acme.json
httpChallenge:
entryPoint: http
إنشاء كلمة مرور آمنة للوصول إلى Traefik. للقيام بذلك، قم أولاً بتثبيت حزمة htpasswd وقم بتشغيل الأوامر التالية واحدًا تلو الآخر؛
- sudo apt install apache2-utils
- echo $(htpasswd -nb
) | sed -e s/\\$/\\$\\$/g
إنشاء شبكة وكيل عامل الإرساء؛
- شبكة عامل ميناء إنشاء traefik-proxy
تحرير ملف docker-compose.yml كـ يتبع؛
الإصدار: '3'
الخدمات:
traefik:
image: traefik:v2.2
اسم الحاوية: traefik
إعادة التشغيل: ما لم يتوقف
security_opt:
- no-new-privileges:true
الشبكات:
- traefik-proxy
المنافذ:
- 80:80
- 443:443
المجلدات:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./traefik-data/traefik.yml:/traefik.yml:ro
- ./traefik-data/acme.json:/acme.json
التسميات:
- "traefik.enable=true"
- "traefik.http.routers.traefik.entrypoints=http"
- "traefik.http.routers.traefik.rule=Host(`traefik.example.com`)"
- "traefik.http.middlewares.traefik-auth.basicauth.users=username:password"
- "traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.traefik.middlewares=traefik-https-redirect"
- "traefik.http.routers.traefik-secure.entrypoints=https"
- "traefik.http.routers.traefik-secure.rule=Host(`traefik.example.com`)"
- "traefik.http.routers.traefik-secure.middlewares=traefik-auth"
- "traefik.http.routers.traefik-secure.tls=true"
- "traefik.http.routers.traefik-secure.tls.certresolver=http"
- "traefik.http.routers.traefik-secure.service=api@internal"
بورتاينر:
الصورة: بورتينر/بورتينر:latest
اسم الحاوية: بورتينر
إعادة التشغيل: ما لم يتم إيقافه
security_opt:
- no-new-privileges:true
الشبكات:
- traefik-proxy
المجلدات:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ." "traefik.http.routers.portainer.rule=Host(`portainer.example.com`)"
- "traefik.http.middlewares.portainer-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.portainer.middlewares=portainer-https-redirect"
- "traefik.http.routers.portainer-secure.entrypoints=https"
- "traefik.http.routers.portainer-secure.rule=Host(`portainer.example.com`)"
- "traefik.http.routers.portainer-secure.tls=true"
- "traefik.http.routers.portainer-secure.tls.certresolver=http"
- "traefik.http.routers.portainer-secure.service=portainer"
- "traefik.http.services.portainer.loadbalancer.server.port=9000"
- "traefik.docker.network=traefik-proxy"
الشبكات:
traefik-proxy:
خارجي: صحيح
أخيرًا، قم بتشغيل الأمر التالي لوقوف الحاويات؛
- docker-compose up -d
يمكنك الوصول إلى واجهة Portainer بالانتقال إلى https://portainer.example.com من متصفحك. بعد إنشاء اسم المستخدم وكلمة المرور على الشاشة التي تظهر، سيكون النظام جاهزًا للاستخدام.