docker 安装 clickhouse单机版

xxx

docker 安装 clickhouse单机版

默认已经安装好Docker, 尚未安装docker的可以参考这篇: Ubuntu安装Docker

  1. 直接运行, docker会自动帮你拉取镜像:
docker run -d --name ch-server --ulimit nofile=262144:262144 -p 8123:8123 -p 9000:9000 -p 9009:9009 yandex/clickhouse-server
  1. 查看镜像

    [root@ly-A2 ~]# docker ps
    CONTAINER ID        IMAGE                      COMMAND             CREATED             STATUS              PORTS                                                                    NAMES
    d00724297352        yandex/clickhouse-server   "/entrypoint.sh"    9 seconds ago       Up 8 seconds        0.0.0.0:8123->8123/tcp, 0.0.0.0:9000->9000/tcp, 0.0.0.0:9009->9009/tcp   ch-server
    
  2. 进入Clickhouse容器

    docker exec -it d00724297352 /bin/bash
    
    • 需要注意的是, 默认的容器是一个依赖包不完整的ubuntu虚拟机

    • 所以我们需要安装vim

      apt-get update
      apt-get install vim -y
      
    • 进入clickhouse-server目录并查看目录

      cd /etc/clickhouse-server
      
      # 查看目录
      root@d00724297352:/etc/clickhouse-server# ll
      total 52
      drwxr-xr-x 1 root root  4096 May 14 18:29 ./
      drwxr-xr-x 1 root root  4096 May 22 08:12 ../
      drwxr-xr-x 1 root root  4096 May 14 18:29 config.d/
      -rw-r--r-- 1 root root 26466 May  8 19:38 config.xml
      lrwxrwxrwx 1 root root    41 May 14 18:29 preprocessed -> /var/lib/clickhouse//preprocessed_configs/
      drwxr-xr-x 2 root root  4096 May 14 18:29 users.d/
      -rw-r--r-- 1 root root  5328 May  8 19:38 users.xml
      
      • 修改clickhouse的用户密码需要在users.xml中配置

      • 需要注意的是: 密码必须为加密过的形式, 否则会一直连不上。

      • 我们这次采用SHA256的方式加密

        PASSWORD=$(base64 < /dev/urandom | head -c8); echo "你的密码"; echo -n "你的密码" | sha256sum | tr -d '-'
        
        • 执行以上命令后会在命令行打印密码明文和密码密文, 如下

          A940922h
          dd2cef99d7122cd3e2455491f79b567400ce238b7eca309f73e089670df70eb6 
          
      • vim users.xml修改用户密码

        • 将55行的 替换为 <password_sha256_hex> 密码密文 </password_sha256_hex>
        • 注销 第68行
      • 不需要重启即可登录

        clickhouse-client -h 127.0.0.1 -d default -m -u default --password '你的密码'
        # 登录成功
        
        d00724297352 :) show databases;
        
        SHOW DATABASES
        
        ┌─name───────────────────────────┐
        │ _temporary_and_external_tables │
        │ default                        │
        │ system                         │
        └────────────────────────────────┘
        
        3 rows in set. Elapsed: 0.002 sec. 
        
        
        
        :set number 
        
        
        

1.使用

docker ps --format "table {{.Names}} ------> {{.Ports}}" | grep minio
docker ps --format "table {{.Names}} ------> {{.Ports}}" | grep ch-server
docker ps --format "table {{.Names}} ------> {{.Ports}}" | grep portainerUI 


Docker容器进程有两种运行模式。

后台模式就是在后台运行,不会让当前进程卡主,你可以做其他事情,而前台模式会导致当前卡住,并输出日志至当前控制台。

Foreground 前台模式(默认)
docker run ...
或
docker run -d=false ...

注意,只有在前台模式下,才有必要设置-it命令选项,为容器设置伪TTY。

Detached 后台模式
docker run -d ...
或
   docker run -d=true ...

foreground容器,一般用在开发调试过程中短期运行,而上线多用Detached 模式。

注意,只要有-d命令选项,就没有-it命令选项。
————————————————
版权声明:本文为CSDN博主「云川之下」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_45406092/article/details/119086550



mkdir -p /app/cloud/clickhouse/conf
docker cp cdh-server:/etc/clickhouse-server/config.xml /app/cloud/clickhouse/conf/config.xml
docker cp cdh-server:/etc/clickhouse-server/users.xml /app/cloud/clickhouse/conf/users.xml

docker cp clickhouse-server:/etc/clickhouse-server/config.xml /app/cloud/clickhouse/conf/config.xml
docker cp clickhouse-server:/etc/clickhouse-server/users.xml /app/cloud/clickhouse/conf/users.xml


docker run -d --name=clickhouse-server \
-p 8123:8123 -p 9009:9009 -p 9090:9000 \
--ulimit nofile=262144:262144 \
-v /app/cloud/clickhouse/data:/var/lib/clickhouse:rw \
-v /app/cloud/clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml \
-v /app/cloud/clickhouse/conf/users.xml:/etc/clickhouse-server/users.xml \
-v /app/cloud/clickhouse/log:/var/log/clickhouse-server:rw \
yandex/clickhouse-server:20.3.5.21



# 首先起一个单机的CH
docker run -d \
--name clickhouse-server \
-p 9000:9000 \
-p 8123:8123 \
-p 9009:9009 \
--ulimit nofile=262144:262144 \
yandex/clickhouse-server

# 将上面单机的CH中的配置文件复制到宿主机的目录中。没有/home/allspark/目录的,请提前创建。
docker cp clickhouse-server:/etc/clickhouse-server/ /home/allspark/

# 停止单机CH
docker stop clickhouse-server
# 删除单机CH
docker rm clickhouse-server

# 起一个CH,这里是将配置、日志、以及数据映射到宿主机
docker run --restart always \
-d \
--name clickhouse-server \
--ulimit nofile=262144:262144 \
--volume=/home/allspark/clickhouse/:/var/lib/clickhouse/ \
--volume=/home/allspark/clickhouse-server/:/etc/clickhouse-server/ \
--volume=/home/allspark/log/clickhouse-server/:/var/log/clickhouse-server/  \
-p 9000:9000 \
-p 8123:8123 \
-p 9009:9009 \
yandex/clickhouse-server

# 转到以下目录
cd /home/allspark/
# 复制配置文件一份,因为一台机器上面需要起两个节点
cp -R clickhouse-server/ clickhouse-server2/

# 这里名字,日志、数据、配置都在不同的目录,端口也加1
docker run --restart always \
-d \
--name clickhouse-server2 \
--ulimit nofile=262144:262144 \
--volume=/home/allspark/clickhouse2/:/var/lib/clickhouse/ \
--volume=/home/allspark/clickhouse-server2/:/etc/clickhouse-server/ \
--volume=/home/allspark/log/clickhouse-server2/:/var/log/clickhouse-server/  \
-p 9001:9000 \
-p 8124:8123 \
-p 9010:9009 \
yandex/clickhouse-server

# 起一个zookeeper,CH的集群分布式依赖与zookeeper
docker run --restart=always \
--name zookeeper -p 2181:2181 \
-v /home/allspark/zookeeper/conf/:/apache-zookeeper-3.5.6-bin/conf/ \
-v /home/allspark/zookeeper/data/:/data \
-v /home/allspark/zookeeper/datalog/:/datalog -v /home/allspark/zookeeper/logs/:/logs -d zookeeper

# 起一个ZKUI,便于查看zookeeper中的数据情况。
docker run --name zkui -p 9090:9090 --link zookeeper:zookeeper -e ZK_SERVER="zookeeper:2181" -d registry.cn-hangzhou.aliyuncs.com/wkaca7114/zkui





查看 https://hub.docker.com/r/yandex/clickhouse-server/dockerfile 文件,EXPOSE 9000 8 9009 了三个端口,而宿主机9000端口已被 MinIO 对象存储服务器占用,所以创建容器暴露该端口用9090替换

root@jazz-pc:~# docker ps --format "table {{.Names}} ------> {{.Ports}}" | grep minio
minio ------> 0.0.0.0:9000->9000/tcp
创建临时容器

docker run --rm -d --name=clickhouse-server
--ulimit nofile=262144:262144
-p 8123:8123 -p 9009:9009 -p 9090:9000
yandex/clickhouse-server:20.3.5.21
复制临时容器内配置文件到宿主机

docker cp clickhouse-server:/etc/clickhouse-server/config.xml /app/cloud/clickhouse/conf/config.xml
docker cp clickhouse-server:/etc/clickhouse-server/users.xml /app/cloud/clickhouse/conf/users.xml
停掉临时容器

docker stop clickhouse-server
创建default账号密码

PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
会输出明码和SHA256密码 SEGByR98 211371f5bc54970907173acf6facb35f0acbc17913e1b71b814117667c01d96d

创建root账号密码

PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
会输出明码和SHA256密码 092j3AnV 35542ded44184b1b4b6cd621e052662578025b58b4187176a3ad2b9548c8356e

修改 /app/cloud/clickhouse/conf/users.xml
把default账号设为只读权限,并设置密码 yandex-->users-->default-->profile 节点设为 readonly 注释掉 yandex-->users-->default-->password 节点 新增 yandex-->users-->default-->password_sha256_hex 节点,填入生成的密码

新增root账号

35542ded44184b1b4b6cd621e052662578025b58b4187176a3ad2b9548c8356e ::/0 default default 创建容器

docker run -d --name=clickhouse-server
-p 8123:8123 -p 9009:9009 -p 9090:9000
--ulimit nofile=262144:262144
-v /app/cloud/clickhouse/data:/var/lib/clickhouse:rw
-v /app/cloud/clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml
-v /app/cloud/clickhouse/conf/users.xml:/etc/clickhouse-server/users.xml
-v /app/cloud/clickhouse/log:/var/log/clickhouse-server:rw
yandex/clickhouse-server:20.3.5.21

————————————————
版权声明:本文为CSDN博主「飘渺Jam」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jianzhang11/article/details/105445855

2.docker内使用apt-get update时报Temporary failure resolving 'security.ubuntu.com错的解决方法

经常构建docker 镜像的时候,在镜像Build时需要经常软件的安装或更新时,运行apt-get update 或者apt-get install 时出现Temporary failure resolving 'security.ubuntu.com'报错时,虽然/etc/resolv.conf已经配置了dns,但是仍然报此错误,修改如下可以解决:

加入如下dns
vim /etc/resolv.conf
nameserver 202.96.134.133
nameserver 8.8.8.8

cd /etc/docker
touch daemon.json

然后将如下的内容放入daemon.json里面

{                                                                          
    "dns": ["8.8.8.8", "114.114.114.114"]                                                                           
}   

重启docker

systemctl restart docker

3.git diff

3.1 git tag差异化

PC-V1.10.3
git tag -a v1.10.3 -m "PC版本V1.10.3和小程序版本V1.0.35发布!"
git tag -d v1.10.3

git tag -a v1.4 -m 'version 1.4'

github clone 指定的tag
git clone --branch [tag] [git地址]

已有仓库切换 tag
git checkout [tag]

git clone --branch [tag] [git地址]


v1.0.0
v1.10.3

例如想编辑 v1.0的tag 代码,那么可以选择如下操作
    git checkout -b new_branch v1.0
    git checkout -b [分支名称] [tag标签名称]


git checkout -b new_branch v1.0

比较两个tag的区别有以下几种方式:

例如两个tag分别为v1.0、 v2.0

1. git log v2.0 ^v1.0

查看v2.0上有,而v1.0上没有的部分;

2. git log v1.0..v2.0

查看v2.0上比v1.0多的部分;

3. git log v1.0...v2.0

只查看版本之间差异;

4. git log --left-right v1.0...v2.0

只查看版本之间差异,显示出每个差异commit所在的版本。

注意 commit 后面的箭头,根据我们在 –left-right v1.0…v2.0 的顺序,左箭头 < 表示是 v1.0 的,右箭头 > 表示是 v2.0的。
————————————————
版权声明:本文为CSDN博主「风筝Lee」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/breakout_alex/article/details/88683014









posted @ 2022-09-13 16:20  三里清风18  阅读(171)  评论(0编辑  收藏  举报