الانتقال إلى المحتوى الرئيسي
الدليل الموجود على Docker Hub مُعاد نشره أدناه لسهولة الرجوع إليه. وتعتمد صور Docker المتاحة على حزم deb الرسمية لـ ClickHouse. أمر Docker pull:

الإصدارات

  • تشير العلامة latest إلى أحدث إصدار من أحدث فرع مستقر.
  • تشير علامات الفروع مثل 22.2 إلى أحدث إصدار من الفرع المقابل.
  • تشير علامات الإصدار الكاملة مثل 22.2.3 و22.2.3.5 إلى الإصدار المقابل.
  • تُبنى العلامة head من أحدث commit على الفرع الافتراضي.
  • تحمل كل علامة لاحقة اختيارية هي -alpine للدلالة على أنها مبنية على alpine.

التوافق

  • تتطلب صورة amd64 دعم تعليمات SSE3. تكاد جميع معالجات x86 بعد عام 2005 تدعم SSE3.
  • تتطلب صورة arm64 دعم معمارية ARMv8.2-A و بالإضافة إلى ذلك سجل Load-Acquire RCpc. هذا السجل اختياري في الإصدار ARMv8.2-A وإلزامي في ARMv8.3-A. وهو مدعوم في Graviton >=2، ومثيلات Azure وGCP. ومن أمثلة الأجهزة غير المدعومة Raspberry Pi 4 ‏(ARMv8.0-A) وJetson AGX Xavier/Orin ‏(ARMv8.2-A).
  • منذ ClickHouse 24.11 بدأت صور Ubuntu باستخدام ubuntu:22.04 كصورة الأساس لها. وهي تتطلب إصدار Docker >= 20.10.10 يحتوي على تصحيح. وكحل بديل، يمكنك استخدام docker run --security-opt seccomp=unconfined بدلًا من ذلك، إلا أن لذلك تبعات أمنية.

طريقة استخدام هذه الصورة

تشغيل مثيل الخادم

افتراضيًا، لن يكون ClickHouse متاحًا إلا عبر شبكة Docker. راجع قسم الشبكات أدناه. افتراضيًا، سيُشغَّل مثيل الخادم المذكور أعلاه باعتباره المستخدم default من دون كلمة مرور.

الاتصال به باستخدام العميل الأصلي

اطّلع على عميل ClickHouse لمزيد من المعلومات حول عميل ClickHouse.

استخدم curl للاتصال به

اطّلع على ClickHouse HTTP Interface لمزيد من المعلومات حول واجهة HTTP.

إيقاف الحاوية / إزالتها

الشبكات

لا يملك المستخدم default المُعرَّف مسبقًا صلاحية الوصول إلى الشبكة ما لم يتم تعيين كلمة مرور، راجع “كيفية إنشاء قاعدة البيانات الافتراضية والمستخدم عند بدء التشغيل” و”إدارة المستخدم default” أدناه
يمكنك إتاحة ClickHouse الذي يعمل في docker عبر ربط منفذ معيّن من داخل الحاوية بمنافذ المضيف:
أو بالسماح للحاوية باستخدام منافذ المضيف مباشرةً عبر --network=host (وهو ما يتيح أيضًا أداءً أفضل للشبكة):
المستخدم default في المثال أعلاه متاح فقط للطلبات الواردة من localhost

وحدات التخزين

عادةً ما قد تحتاج إلى ربط المجلدات التالية داخل الحاوية لضمان استمرارية البيانات:
  • /var/lib/clickhouse/ - المجلد الرئيسي الذي يخزّن فيه ClickHouse البيانات
  • /var/log/clickhouse-server/ - السجلات
قد ترغب أيضًا في ربط:
  • /etc/clickhouse-server/config.d/*.xml - ملفات تتضمن تعديلات على تهيئة الخادم
  • /etc/clickhouse-server/users.d/*.xml - ملفات تتضمن تعديلات على إعدادات المستخدم
  • /docker-entrypoint-initdb.d/ - مجلد يحتوي على نصوص برمجية لتهيئة قاعدة البيانات (انظر أدناه).

ميزات Linux الأمنية

يوفّر ClickHouse بعض الوظائف المتقدمة التي تتطلب تفعيل عدة ميزات أمان في Linux وهي اختيارية، ويمكن تفعيلها باستخدام وسيطات سطر أوامر Docker التالية:
لمزيد من المعلومات، راجع “تهيئة إمكانيات CAP_IPC_LOCK وCAP_SYS_NICE في Docker”

التهيئة

تفتح الحاوية المنفذ 8123 لـواجهة HTTP والمنفذ 9000 لـالعميل الأصلي. تُمثَّل تهيئة ClickHouse في ملف “config.xml” (الوثائق)

بدء مثيل الخادم باستخدام تهيئة مخصّصة

تشغيل server باستخدام مستخدم مخصص

عند استخدام الصورة مع ربط الأدلة المحلية، يُرجَّح أن تحتاج إلى تحديد المستخدم للحفاظ على ملكية الملفات بشكل صحيح. استخدم المعامل --user، واربط /var/lib/clickhouse و/var/log/clickhouse-server داخل الحاوية. وإلا فستعرض الصورة رسالة خطأ ولن تبدأ.

بدء تشغيل الخادم من المستخدم الجذر

يكون تشغيل الخادم من المستخدم الجذر مفيدًا عندما يكون حيّز أسماء المستخدم مفعّلًا. للقيام بذلك، شغّل:

كيفية إنشاء قاعدة البيانات الافتراضية والمستخدم عند بدء التشغيل

قد تحتاج أحيانًا إلى إنشاء مستخدم (يُستخدم المستخدم المسمى default افتراضيًا) وقاعدة بيانات عند بدء الحاوية. يمكنك القيام بذلك باستخدام متغيرات البيئة CLICKHOUSE_DB وCLICKHOUSE_USER وCLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT وCLICKHOUSE_PASSWORD:

إدارة المستخدم default

يكون وصول المستخدم default عبر الشبكة معطّلًا افتراضيًا إذا لم يتم تعيين أي من CLICKHOUSE_USER أو CLICKHOUSE_PASSWORD أو CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT. يمكن إتاحة المستخدم default بشكل غير آمن عن طريق تعيين متغير البيئة CLICKHOUSE_SKIP_USER_SETUP إلى 1:

كيفية توسيع هذه الصورة

لإجراء تهيئة إضافية في صورة مشتقة من هذه الصورة، أضف نصًا برمجيًا واحدًا أو أكثر من النوع *.sql أو *.sql.gz أو *.sh ضمن /docker-entrypoint-initdb.d. بعد أن يستدعي entrypoint الأمر initdb، سيُنفِّذ أي ملفات *.sql، ويُشغِّل أي نصوص برمجية *.sh قابلة للتنفيذ، ويُضمِّن أي نصوص برمجية *.sh غير قابلة للتنفيذ موجودة في ذلك الدليل لإجراء مزيد من التهيئة قبل بدء الخدمة.
تُنفَّذ النصوص البرمجية الموجودة ضمن /docker-entrypoint-initdb.d بترتيب أبجدي حسب اسم الملف. إذا كانت نصوصك البرمجية تعتمد على بعضها بعضًا (على سبيل المثال، نص برمجي يُنشئ views يجب أن يعمل بعد النص البرمجي الذي يُنشئ الجداول المشار إليها)، فتأكَّد من أن أسماء الملفات مرتبة بالترتيب الصحيح.
يمكنك أيضًا توفير متغيرَي البيئة CLICKHOUSE_USER وCLICKHOUSE_PASSWORD لاستخدامهما مع clickhouse-client أثناء التهيئة. على سبيل المثال، لإضافة مستخدم آخر وقاعدة بيانات أخرى، أضف ما يلي إلى /docker-entrypoint-initdb.d/init-db.sh:
آخر تعديل في ٢٥ يونيو ٢٠٢٦