docker pull:
Versiones
- La etiqueta
latestapunta a la versión publicada más reciente de la rama estable más reciente. - Las etiquetas de rama, como
22.2, apuntan a la versión publicada más reciente de la rama correspondiente. - Las etiquetas de versión completa, como
22.2.3y22.2.3.5, apuntan a la versión publicada correspondiente. - La etiqueta
headse construye a partir del último commit de la ramadefault. - Cada etiqueta tiene un sufijo opcional
-alpinepara indicar que está construida sobrealpine.
Compatibilidad
- La imagen amd64 requiere compatibilidad con las instrucciones SSE3. Prácticamente todas las CPU x86 posteriores a 2005 son compatibles con SSE3.
- La imagen arm64 requiere compatibilidad con la arquitectura ARMv8.2-A y, además, con el registro Load-Acquire RCpc. Este registro es opcional en ARMv8.2-A y obligatorio en ARMv8.3-A. Se admite en instancias Graviton >=2 y en instancias de Azure y GCP. Algunos ejemplos de dispositivos no compatibles son Raspberry Pi 4 (ARMv8.0-A) y Jetson AGX Xavier/Orin (ARMv8.2-A).
- Desde ClickHouse 24.11, las imagenes de Ubuntu comenzaron a usar
ubuntu:22.04como imagen base. Requieredockerversión >=20.10.10que incluya el patch. Como solución alternativa, puede usardocker run --security-opt seccomp=unconfined; no obstante, esto tiene implicaciones de seguridad.
Cómo usar esta imagen
Iniciar una instancia del servidor
default sin contraseña.
Conectarse desde un cliente nativo
Conectarse a él con curl
Detener / eliminar el contenedor
Red
el usuario predefinido
default no tiene acceso de red a menos que se establezca una contraseña;
consulta “Cómo crear la base de datos predeterminada y el usuario al iniciar” y “Administrar el usuario default” más abajo--network=host
(lo que también permite obtener un mejor rendimiento de red):
El usuario default del ejemplo anterior solo está disponible para las solicitudes desde localhost
Volúmenes
/var/lib/clickhouse/- carpeta principal donde ClickHouse almacena los datos/var/log/clickhouse-server/- logs
/etc/clickhouse-server/config.d/*.xml- archivos con ajustes de la configuración del servidor/etc/clickhouse-server/users.d/*.xml- archivos con ajustes de la configuración de usuario/docker-entrypoint-initdb.d/- carpeta con scripts de inicialización de la base de datos (véase más abajo).
Capacidades de Linux
Configuración
Iniciar una instancia del servidor con una configuración personalizada
Iniciar el servidor como usuario personalizado
--user y monta /var/lib/clickhouse y /var/log/clickhouse-server dentro del contenedor. De lo contrario, la imagen dará error y no se iniciará.
Iniciar el servidor como root
Cómo crear la base de datos predeterminada y el usuario al iniciar
default) y una base de datos al iniciar el contenedor. Puedes hacerlo mediante las variables de entorno CLICKHOUSE_DB, CLICKHOUSE_USER, CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT y CLICKHOUSE_PASSWORD:
Gestión del usuario default
default tiene el acceso de red deshabilitado de forma predeterminada si no se establece ninguna de las variables CLICKHOUSE_USER, CLICKHOUSE_PASSWORD o CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT.
Hay una forma de hacer que el usuario default quede disponible de forma no segura: configure la variable de entorno CLICKHOUSE_SKIP_USER_SETUP con el valor 1:
Cómo extender esta imagen
*.sql, *.sql.gz o *.sh en /docker-entrypoint-initdb.d. Después de que el entrypoint llame a initdb, ejecutará todos los archivos *.sql, ejecutará todos los scripts *.sh ejecutables y hará source de todos los scripts *.sh no ejecutables que encuentre en ese directorio para realizar una inicialización adicional antes de iniciar el servicio.
Los scripts de
/docker-entrypoint-initdb.d se ejecutan en orden alfabético según el nombre de archivo. Si sus scripts tienen dependencias entre sí (por ejemplo, un script que crea vistas debe ejecutarse después del script que crea las tablas a las que hacen referencia), asegúrese de que los nombres de archivo se ordenen correctamente.CLICKHOUSE_USER & CLICKHOUSE_PASSWORD, que se usarán para clickhouse-client durante la inicialización.
Por ejemplo, para agregar otro usuario y otra base de datos, añada lo siguiente a /docker-entrypoint-initdb.d/init-db.sh: