Docker安装Clickhouse单机版

docker安装

#卸载
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

#安装依赖包
yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2

#设置yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#安装最新版本的Docker
yum install docker-ce docker-ce-cli containerd.io

版本查看:
yum list docker-ce --showduplicates | sort -r
安装指定版本(VERSION_STRING 是个变量请根据实际情况替换):
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

#启动docker
systemctl start docker 
#设置开机自启动
systemctl enable docker

1、先准备好三个文件夹,data、conf、log:

mkdir -p  /usr/local/clickhouse/data /usr/local/clickhouse/conf /usr/local/clickhouse/log

2、运行一个临时容器(拷贝其中的配置文件):

docker run -d --rm --name=ck-temp yandex/clickhouse-server

3、将容器中的两个核心配置文件拷贝到宿主机提前准备好的文件夹:

docker cp ck-temp:/etc/clickhouse-server/users.xml /usr/local/clickhouse/conf/users.xml

docker cp ck-temp:/etc/clickhouse-server/config.xml /usr/local/clickhouse/conf/config.xml

4、如果要设备default账号的密码:

#执行以下命令,生成SHA256密码:
PASSWORD=$(base64 < /dev/urandom | head -c8); \
echo "123456"; \
echo -n "123456" | sha256sum | tr -d '-'
# 输出
123456
8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92

修改users.xml配置中对应的部分(支持明文密码和加密密码):

<users>
        <!-- If user name was not specified, 'default' user is used. -->
        <default>
            <!-- <password>123456</password> -->      
<password_sha256_hex>8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92</password_sha256_hex>
            <networks>
                <ip>::/0</ip>
            </networks>
            <!-- Settings profile for user. -->
            <profile>default</profile>
            <!-- Quota for user. -->
            <quota>default</quota>
            <!-- User can create other users and grant rights to them. -->
            <!-- <access_management>1</access_management> -->
        </default>
</users>

5、关闭之前的临时容器:

docker rm -f ck-temp

6、启动正式容器:

docker run -d --name clickhouse-server \
-p 8123:8123 \
-p 9009:9009 \
-p 9090:9000 \
--ulimit nofile=262144:262144 \
--volume=/usr/local/clickhouse/data:/var/lib/clickhouse \
--volume=/usr/local/clickhouse/log:/var/log/clickhouse-server \
--volume=/usr/local/clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml \
--volume=/usr/local/clickhouse/conf/users.xml:/etc/clickhouse-server/users.xml \
--restart=always \
yandex/clickhouse-server

7、使用工具进行连接