صورة Docker توسيع نطاق influxdb الرسمي مع متغيرات البيئة _file لتكون متوافقة مع أسرار Docker
تتصرف هذه الصورة تمامًا كما هو موضح في وثائق صور الأصل. الفرق الوحيد هو أنه بالنسبة لجميع متغيرات بيئة كلمة المرور ، يوجد متغير بيئة Password_File المقابل ، والذي يتم استخدامه لتحديد ملف لقراءة قيمة الوالد من ذلك ، في حالة عدم تعيينه بالفعل.
وصف صورة الوالد أدناه.
InfluxDB هي قاعدة بيانات سلسلة زمنية تم تصميمها من الألف إلى الياء للتعامل مع أحمال الكتابة والاستعلام العالية. من المفترض أن يتم استخدام inforxdb كمخزن دعم لأي حالة استخدام تتضمن كميات كبيرة من البيانات الطابع الزمني ، بما في ذلك مراقبة DevOps ، ومقاييس التطبيق ، وبيانات مستشعر IoT ، والتحليلات في الوقت الفعلي.
وثائق influxdb
تكشف صورة influxdb وحدة تخزين مشتركة تحت /var/lib/influxdb
، بحيث يمكنك تركيب دليل مضيف لهذا النقطة للوصول إلى بيانات الحاوية المستمرة. قد يكون الاحتجاج النموذجي للحاوية:
$ docker run -p 8086:8086
-v $PWD:/var/lib/influxdb
influxdb
تعديل $PWD
إلى الدليل حيث تريد تخزين البيانات المرتبطة بحاوية influxDB.
يمكنك أيضًا التحكم في Docker في نقطة تركيب الصوت باستخدام وحدة تخزين مسماة.
$ docker run -p 8086:8086
-v influxdb:/var/lib/influxdb
influxdb
المنافذ التالية مهمة وتستخدمها influxdb.
سيتم عرض منفذ API HTTP تلقائيًا عند استخدام docker run -P
.
لا يتم عرض واجهة المسؤول تلقائيًا عند استخدام docker run -P
ويتم تعطيلها افتراضيًا. تتطلب واجهة Advinstrator أن يتمتع متصفح الويب بإمكانية الوصول إلى influxDB على نفس المنفذ في الحاوية كما هو الحال في متصفح الويب. نظرًا لأن -P
يعرض منفذ HTTP للمضيف على منفذ عشوائي ، فإن واجهة المسؤول غير متوافقة مع هذا الإعداد.
يتم إهمال واجهة المسؤول اعتبارًا من 1.1.0 وسيتم إزالتها في 1.3.0.
ابحث عن المزيد حول نقاط نهاية API والمنافذ هنا.
يمكن تكوين efferuxdb من ملف التكوين أو باستخدام متغيرات البيئة. لتركيب ملف التكوين واستخدامه مع الخادم ، يمكنك استخدام هذا الأمر:
إنشاء ملف التكوين الافتراضي:
$ docker run --rm influxdb influxd config > influxdb.conf
قم بتعديل التكوين الافتراضي ، والذي سيكون متاحًا الآن بموجب $PWD
. ثم ابدأ حاوية influxdb.
$ docker run -p 8086:8086
-v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro
influxdb -config /etc/influxdb/influxdb.conf
تعديل $PWD
إلى الدليل حيث تريد تخزين ملف التكوين.
بالنسبة لمتغيرات البيئة ، فإن التنسيق هو INFLUXDB_$SECTION_$NAME
. يتم استبدال جميع الشرطات ( -
) مع السفلية ( _
). إذا لم يكن المتغير في قسم ، فاحذف هذا الجزء.
أمثلة:
INFLUXDB_REPORTING_DISABLED=true
INFLUXDB_META_DIR=/path/to/metadir
INFLUXDB_DATA_QUERY_LOG_ENABLED=false
ابحث عن المزيد حول تكوين influxdb هنا
يدعم inforxdb بروتوكول خط الجرافيت ، لكن الخدمة والمنافذ لا تتعرض افتراضيًا. لتشغيل influxdb مع تمكين دعم الجرافيت ، يمكنك إما استخدام ملف التكوين أو تعيين متغيرات البيئة المناسبة. قم بتشغيل influxdb مع تكوين الجرافيت الافتراضي:
docker run -p 8086:8086 -p 2003:2003
-e INFLUXDB_GRAPHITE_ENABLED=true
influxdb
راجع ReadMe على Github للحصول على المزيد من الوثائق التفصيلية لإعداد خدمة الجرافيت. من أجل الاستفادة من قوالب الجرافيت ، يجب عليك استخدام ملف التكوين عن طريق إخراج ملف التكوين الافتراضي باستخدام الخطوات أعلاه وتعديل قسم [[graphite]]
.
يتم إهمال واجهة المسؤول اعتبارًا من 1.1.0 وسيتم إزالتها في 1.3.0. تم تعطيله افتراضيًا. إذا لزم الأمر ، فلا يزال من الممكن تمكينه عن طريق تعيين متغير بيئة كما يلي:
docker run -p 8086:8086 -p 8083:8083
-e INFLUXDB_ADMIN_ENABLED=true
influxdb
لاستخدام واجهة المسؤول ، يجب إعادة توجيه كل من HTTP API وواجهة واجهة واجهة واجهة برمجة تطبيقات المسؤول إلى نفس المنفذ.
إنشاء DB يدعى MyDB:
$ curl -G http://localhost:8086/query --data-urlencode " q=CREATE DATABASE mydb "
إدراج في DB:
$ curl -i -XPOST ' http://localhost:8086/write?db=mydb ' --data-binary ' cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000 '
اقرأ المزيد عن هذا في الوثائق الرسمية
ابدأ الحاوية:
$ docker run --name=influxdb -d -p 8086:8086 influxdb
قم بتشغيل عميل التدفق في حاوية أخرى:
$ docker run --rm --link=influxdb -it influxdb influx -host influxdb
في الوقت الحالي ، لا يمكنك استخدام docker exec
لتشغيل عميل التدفق لأن docker exec
لن تخصيص TTY بشكل صحيح. ويرجع ذلك إلى وجود خطأ حالي في Docker مفصلة في Docker/Docker#8755.
تحتوي صورة influxDB على بعض الوظائف الإضافية لتهيئة قاعدة البيانات. لا يتم اقتراح هذه الخيارات للإنتاج ، ولكنها مفيدة للغاية عند تشغيل مثيلات مستقلة للاختبار.
سيتم استدعاء البرنامج النصي لتهيئة قاعدة البيانات فقط عند تشغيل influxd
. لن يتم تنفيذها عند تشغيل أي برنامج آخر.
تستخدم صورة InfluxDB العديد من متغيرات البيئة لتكوين أجزاء معينة من الخادم تلقائيًا. قد يساعدك بشكل كبير في استخدام هذه الصورة.
تهيئة قاعدة بيانات تلقائيًا باسم متغير البيئة هذا.
تمكين المصادقة. إما أن يتم تعيين هذا أو auth-enabled = true
ضمن ملف التكوين لأي خيارات متعلقة بالمصادقة أدناه للعمل.
اسم مستخدم المسؤول المراد إنشاؤه. إذا كان هذا غير مستقر ، فلا يتم إنشاء أي مستخدم مسؤول.
كلمة المرور لمستخدم المسؤول الذي تم تكوينه باستخدام INFLUXDB_ADMIN_USER
. إذا كان هذا غير محدد ، يتم إنشاء كلمة مرور عشوائية وطباعتها إلى Standard Out.
اسم المستخدم الذي سيتم إنشاؤه بدون امتيازات. إذا تم تعيين INFLUXDB_DB
، فسيتم منح هذا المستخدم قراءة وكتابة أذونات لقاعدة البيانات هذه.
كلمة المرور للمستخدم التي تم تكوينها باستخدام INFLUXDB_USER
. إذا كان هذا غير محدد ، يتم إنشاء كلمة مرور عشوائية وطباعتها إلى Standard Out.
اسم المستخدم الذي سيتم إنشاؤه بامتيازات القراءة على INFLUXDB_DB
. إذا لم يتم تعيين INFLUXDB_DB
، فلن يكون لهذا المستخدم أذونات ممنوعة.
كلمة مرور المستخدم التي تم تكوينها باستخدام INFLUXDB_READ_USER
. إذا كان هذا غير محدد ، يتم إنشاء كلمة مرور عشوائية وطباعتها إلى Standard Out.
اسم المستخدم الذي سيتم إنشاؤه بامتيازات الكتابة على INFLUXDB_DB
. إذا لم يتم تعيين INFLUXDB_DB
، فلن يكون لهذا المستخدم أذونات ممنوحة.
كلمة المرور الخاصة بالمستخدم التي تم تكوينها باستخدام INFLUXDB_WRITE_USER
. إذا كان هذا غير محدد ، يتم إنشاء كلمة مرور عشوائية وطباعتها إلى Standard Out.
إذا وجدت صورة Docker أي ملفات مع ملحقات .sh
أو .iql
داخل مجلد /docker-entrypoint-initdb.d
، فسيتم تنفيذها. يتم تحديد الأمر الذي يتم تنفيذه بواسطة القشرة. هذا عادة ما يكون الترتيب الأبجدي.
لتهيئة قاعدة البيانات والخروج يدويًا ، يمكن استخدام البرنامج النصي /init-influxdb.sh
مباشرة. يستغرق نفس المعلمات مثل أمر influxd run
. كمثال:
$ docker run --rm
-e INFLUXDB_DB=db0 -e INFLUXDB_ADMIN_ENABLED=true
-e INFLUXDB_ADMIN_USER=admin -e INFLUXDB_ADMIN_USER=supersecretpassword
-e INFLUXDB_USER=telegraf -e INFLUXDB_USER_PASSWORD=secretpassword
-v $PWD:/var/lib/influxdb
/init-influxdb.sh
من شأن ما ورد أعلاه إنشاء قاعدة البيانات db0
، قم بإنشاء مستخدم مسؤول مع كلمة المرور supersecretpassword
، ثم قم بإنشاء مستخدم telegraf
بكلمة مرور Telegraf السري الخاصة بك. ثم يخرج ويترك وراءه أي ملفات تم إنشاؤها في مستوى الصوت الذي قمت بتثبيته.
تأتي صور influxdb
في العديد من النكهات ، كل منها مصمم لحالة استخدام محددة.
influxdb:<version>
هذه هي صورة Defacto. إذا كنت غير متأكد من ماهية احتياجاتك ، فربما تريد استخدام هذا. تم تصميمه ليتم استخدامه كحاوية رمي بعيدًا (قم بتركيب رمز المصدر الخاص بك وابدأ الحاوية لبدء تطبيقك) ، وكذلك القاعدة لإنشاء صور أخرى.
influxdb:alpine
تعتمد هذه الصورة على مشروع Alpine Linux الشهير ، المتوفر في الصورة الرسمية alpine
. يعد Alpine Linux أصغر بكثير من معظم الصور قاعدة التوزيع (حوالي 5 ميجابايت) ، وبالتالي يؤدي إلى صور أقل حجماً بشكل عام.
يوصى بشدة بهذا البديل عندما يكون حجم الصورة النهائي أصغر قدر الإمكان. التحذير الرئيسي الذي يجب ملاحظته هو أنه يستخدم Musl libc بدلاً من GLIBC والأصدقاء ، لذلك قد يواجه بعض البرامج مشكلات اعتمادًا على عمق متطلبات LIBC الخاصة بهم. ومع ذلك ، فإن معظم البرامج لا تواجه مشكلة في هذا ، لذلك عادة ما يكون هذا البديل خيارًا آمنًا للغاية. راجع خيط تعليق Hacker News لمزيد من المناقشة حول القضايا التي قد تنشأ وبعض المقارنات Pro/Con لاستخدام الصور القائمة على جبال الألب.
لتقليل حجم الصورة ، من غير المألوف أن يتم تضمين أدوات إضافية ذات صلة (مثل git
أو bash
) في الصور القائمة على جبال الألب. باستخدام هذه الصورة كقاعدة ، أضف الأشياء التي تحتاجها في DockerFile الخاصة بك (انظر وصف صورة alpine
للحصول على أمثلة حول كيفية تثبيت الحزم إذا كنت غير مألوف).
عرض معلومات الترخيص للبرنامج الوارد في هذه الصورة.
كما هو الحال مع جميع صور Docker ، فمن المحتمل أيضًا أن تحتوي على برامج أخرى قد تكون تحت التراخيص الأخرى (مثل Bash ، وما إلى ذلك من التوزيع الأساسي ، إلى جانب أي تبعيات مباشرة أو غير مباشرة للبرنامج الأساسي الذي يتم احتوائه).
يمكن العثور على بعض معلومات الترخيص الإضافية التي كانت قادرة على المكتشف تلقائيًا في دليل influxdb/
repo-info
.
بالنسبة إلى أي استخدام للصور مسبقًا ، تقع على عاتق مستخدم الصورة مسؤولية التأكد من أن أي استخدام لهذه الصورة يتوافق مع أي تراخيص ذات صلة لجميع البرامج الموجودة في الداخل.