01 前言
clickhouse docker hub首页:https://hub.docker.com/r/yandex/clickhouse-server,这里描述了clickhouse在docker下的简介以及部署方式:
搜索自己需要的版本:https://hub.docker.com/r/yandex/clickhouse-server/tags?page=1:
访问:https://hub.docker.com/r/yandex/clickhouse-server/dockerfile查看dockerfile,内容如下(已添加注释):
# 使用基础镜像为 Ubuntu 18.04 FROM ubuntu:18.04 # 设置构建参数:ClickHouse仓库、版本和gosu版本 ARG repository="deb http://repo.yandex.ru/clickhouse/deb/stable/ main/" ARG version=19.1.13 ARG gosu_ver=1.10 # 更新APT源,并安装所需软件和依赖 RUN apt-get update \ && apt-get install --yes --no-install-recommends \ apt-transport-https \ dirmngr \ gnupg \ && mkdir -p /etc/apt/sources.list.d \ && apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4 \ && echo $repository > /etc/apt/sources.list.d/clickhouse.list \ && apt-get update \ && env DEBIAN_FRONTEND=noninteractive \ apt-get install --allow-unauthenticated --yes --no-install-recommends \ clickhouse-common-static=$version \ clickhouse-client=$version \ clickhouse-server=$version \ libgcc-7-dev \ locales \ tzdata \ wget \ && rm -rf \ /var/lib/apt/lists/* \ /var/cache/debconf \ /tmp/* \ && apt-get clean # 下载并安装gosu工具 ADD https://github.com/tianon/gosu/releases/download/1.10/gosu-amd64 /bin/gosu # 生成en_US.UTF-8语言环境 RUN locale-gen en_US.UTF-8 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 # 创建初始化数据库目录 RUN mkdir /docker-entrypoint-initdb.d # 复制配置文件和入口脚本到镜像中 COPY docker_related_config.xml /etc/clickhouse-server/config.d/ COPY entrypoint.sh /entrypoint.sh # 赋予入口脚本和gosu可执行权限 RUN chmod +x \ /entrypoint.sh \ /bin/gosu # 暴露ClickHouse的端口并设置数据卷 EXPOSE 9000 8123 9009 VOLUME /var/lib/clickhouse # 设置ClickHouse配置文件路径并指定入口命令为entrypoint.sh ENV CLICKHOUSE_CONFIG /etc/clickhouse-server/config.xml ENTRYPOINT ["/entrypoint.sh"]
注意:判断以上暴露的端口是否与本机已有的服务冲突。
02 安装
拉取镜像:
docker pull yandex/clickhouse-server:21.3.20.1
启动容器:
docker run --rm -d --name=clickhouse-server \ --ulimit nofile=262144:262144 \ -p 8123:8123 -p 9009:9009 -p 9090:9000 \ yandex/clickhouse-server:21.3.20.1
03 修改配置
3.1 安装vim插件
因为clickhouse容器里面是没有安装vim的,所以要手动安装:
# 进入容器 docker exec -it clickhouse-server bash ## 安装vim apt-get update apt-get install vim -y
3.2 修改用户密码
在/etc/clickhouse-server/users.xml
中配置用户密码,首先生成密码,这里需要sha256加密,加入我的命令为123456,执行命令:
PASSWORD=$(base64 < /dev/urandom | head -c8); echo "123456"; echo -n "123456" | sha256sum | tr -d '-'
使用vi命令,修改文件里面的“<password>
”标签为“<password_sha256_hex>
”然后复制加密后的密码进/etc/clickhouse-server/users.xml
文件里面的<password_sha256_hex></password_sha256_hex>
,:
# 编辑 vi /etc/clickhouse-server/users.xml # 复制password <password_sha256_hex>8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92</password_sha256_hex>
退出容器,然后重启:
# 退出 exit # 重启 docker restart clickhouse-server
04 验证
使用DBeaver连接Clickhouse,首先新建ClickHouse连接:
配置信息如下:
点击测试连接,根据指引去点击“next”,会自动下载相关的依赖,连接成功如下: