버전
latest태그는 최신 안정 브랜치의 최신 릴리스를 가리킵니다.22.2와 같은 브랜치 태그는 해당 브랜치의 최신 릴리스를 가리킵니다.22.2.3및22.2.3.5와 같은 전체 버전 태그는 해당 릴리스를 가리킵니다.head태그는default브랜치의 최신 commit으로 빌드됩니다.- 각 태그에는
alpine기반으로 빌드되었음을 나타내는 선택적-alpine접미사를 붙일 수 있습니다.
호환성
- amd64 이미지는 SSE3 instructions을 지원해야 합니다. 2005년 이후의 거의 모든 x86 CPU는 SSE3를 지원합니다.
- arm64 이미지는 ARMv8.2-A architecture를 지원해야 하며 추가로 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를 사용합니다. 이를 위해서는 패치가 포함된20.10.10이상의 docker 버전이 필요합니다. 우회 방법으로는 대신docker run --security-opt seccomp=unconfined를 사용할 수 있지만, 보안상 위험이 따를 수 있습니다.
이 이미지 사용 방법
서버 인스턴스 시작하기
default 사용자로 실행됩니다.
네이티브 클라이언트로 연결하기
curl로 연결하기
컨테이너 중지 및 제거
네트워킹
미리 정의된 사용자
default는 비밀번호가 설정되어 있지 않으면 네트워크에 접근할 수 없습니다.
아래의 “시작 시 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/- 데이터베이스 초기화 스크립트가 들어 있는 폴더(아래 참조).
Linux capability
구성
사용자 지정 구성으로 서버 인스턴스 시작하기
지정한 사용자 계정으로 서버 시작
--user 인수를 사용하고 /var/lib/clickhouse와 /var/log/clickhouse-server를 컨테이너 내부에 마운트하십시오. 그렇지 않으면 이미지가 오류를 내고 시작되지 않습니다.
root 권한으로 서버 시작
시작 시 default 데이터베이스와 사용자를 생성하는 방법
default라는 이름의 사용자가 사용됩니다)와 데이터베이스를 생성해야 할 수 있습니다. 이 작업은 환경 변수 CLICKHOUSE_DB, CLICKHOUSE_USER, CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT, CLICKHOUSE_PASSWORD를 사용해 수행할 수 있습니다:
default 사용자 관리
CLICKHOUSE_USER, CLICKHOUSE_PASSWORD, CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT 중 어느 것도 설정되지 않으면 사용자 default의 네트워크 액세스가 기본적으로 비활성화됩니다.
환경 변수 CLICKHOUSE_SKIP_USER_SETUP를 1로 설정하면 default 사용자를 안전하지 않은 방식으로 사용할 수 있습니다:
이 이미지를 확장하는 방법
/docker-entrypoint-initdb.d 아래에 *.sql, *.sql.gz 또는 *.sh 스크립트를 하나 이상 추가하십시오. 엔트리포인트가 initdb를 호출한 후에는 서비스가 시작되기 전에 추가 초기화를 위해 해당 디렉터리에서 찾은 *.sql 파일을 실행하고, 실행 권한이 있는 *.sh 스크립트를 실행하며, 실행 권한이 없는 *.sh 스크립트는 source합니다.
/docker-entrypoint-initdb.d 아래의 스크립트는 파일명 기준 알파벳 순서로 실행됩니다. 스크립트 간에 의존성이 있는 경우(예: 뷰를 생성하는 스크립트는 참조 대상 테이블을 생성하는 스크립트 다음에 실행되어야 함) 파일명이 올바른 순서로 정렬되도록 하십시오.clickhouse-client에서 사용할 환경 변수 CLICKHOUSE_USER 및 CLICKHOUSE_PASSWORD를 지정할 수 있습니다.
예를 들어, 다른 사용자와 데이터베이스를 추가하려면 /docker-entrypoint-initdb.d/init-db.sh에 다음 내용을 추가하십시오: