Версии
- Тег
latestуказывает на последний релиз последней стабильной ветки. - Теги веток, такие как
22.2, указывают на последний релиз соответствующей ветки. - Теги полной версии, такие как
22.2.3и22.2.3.5, указывают на соответствующий релиз. - Тег
headсобирается из последнего коммита в ветке по умолчанию. - У каждого тега может быть необязательный суффикс
-alpine, который указывает, что он собран на основеalpine.
Совместимость
- Для образа amd64 требуется поддержка инструкций SSE3. Практически все CPU 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, однако это снижает безопасность.
Как использовать этот образ
Запустите экземпляр сервера
default без пароля.
Подключитесь к нему через нативный клиент
Подключитесь к нему с помощью curl
Остановка и удаление контейнера
Сеть
предопределённый пользователь
default не имеет доступа по сети, если для него не задан пароль,
см. “Как создать базу данных по умолчанию и пользователя при запуске” и “Управление пользователем default” ниже--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/- каталог со script инициализации базы данных (см. ниже).
Привилегии Linux
Конфигурация
Запустите экземпляр сервера с пользовательской конфигурацией
Запуск сервера от имени другого пользователя
--user и смонтируйте /var/lib/clickhouse и /var/log/clickhouse-server внутри контейнера. В противном случае образ выдаст ошибку и не запустится.
Запуск сервера из-под root
Как при запуске создать базу данных и пользователя по умолчанию
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 выполняются в алфавитном порядке по имени файла. Если ваши скрипты зависят друг от друга (например, скрипт, создающий представления, должен выполняться после скрипта, создающего таблицы, на которые они ссылаются), убедитесь, что имена файлов сортируются в правильном порядке.CLICKHOUSE_USER и CLICKHOUSE_PASSWORD, которые будут использоваться клиентом ClickHouse во время инициализации.
Например, чтобы добавить ещё одного пользователя и базу данных, добавьте следующее в /docker-entrypoint-initdb.d/init-db.sh: