windows10上安裝Docker:
http://www.ujiaoshou.com/xtjc/143941331.html
從零開始的Docker Desktop使用:
https://blog.csdn.NET/qq_39611230/article/details/108641842
2.Docker部署clickhouse
1.拉取鏡像
以管理員權(quán)限打開Windows PowerShell,輸入以下命令
docker pull yandex/clickhouse-server
docker pull yandex/clickhouse-client
我們不需要在服務(wù)器端部署clickhouse-client,所以我們在客戶端機(jī)器上執(zhí)行docker pull yandex/clickhouse-client
如果拉取鏡像太慢,則設(shè)置一下國內(nèi)的鏡像源
{
"debug": true,
"experimental": true,
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
]
}
https://registry.docker-cn.com 官方的
http://hub-mirror.c.163.com 網(wǎng)易的
2.啟動server端
直接啟動
docker run -d -p 8123:8123 -p 9000:9000 --name clickhouse yandex/clickhouse-server
我們可以看到我們的容器已經(jīng)在運行中了
需要注意的是,如果直接啟動,這樣的話我們的數(shù)據(jù)文件當(dāng)容器銷毀的時候就沒有了所以我們可以在本地創(chuàng)建一個數(shù)據(jù)文件目錄,然后掛在上去
3.部署設(shè)置掛載數(shù)據(jù)文件
1.創(chuàng)建數(shù)據(jù)文件目錄
mkdir D:/clickhouse/db
2 啟動,需要注意的是我們需要停止并且刪除前面的容器
然后啟動
docker run -d -p 8123:8123 -p 9000:9000 --name clickhouse --volume=D:/clickhouse/db:/var/lib/clickhouse yandex/clickhouse-server
4.啟動clickhouse-client
這里我們在另外一臺機(jī)器上部署clickhouse-client, 因為我們的clickhouse-server一般是部署在服務(wù)器端的,我們的clickhouse-client 是部署在客戶端的,所以我們先拉去鏡像
docker pull yandex/clickhouse-client
Docker部署clickhousedocker02
docker run --name ck-client -it --rm --link clickhouse yandex/clickhouse-client --host 192.168.1.103 --port 9000 --user root --password 123456
因為客戶端每次使用完不用一直常駐所以這里使用–rm 參數(shù) 在使用exit 命令退出 ck-client容器后就會直接刪除這個容器,下次啟動重新創(chuàng)建就可以了
docker --link 主要解決了以下兩個問題
link可以通過容器名互相通信,容器間共享環(huán)境變量。
link主要用來解決兩個容器通過ip地址連接時容器ip地址會變的問題
這里我們主要就是要通信,因為我們要使用客戶端去服務(wù)器端查數(shù)據(jù),--link 后面就是我們要連接的容器的名稱,這里有點麻煩的是要做docker 跨主機(jī)通信,如果你覺得麻煩的話或者單純學(xué)習(xí)clickhouse的話,就在同一臺機(jī)器上部署也可以,連接進(jìn)去后我們創(chuàng)建了一個數(shù)據(jù)庫bzhan
4.使用dbeaver連接
安裝
dbeaver:https://blog.csdn.net/fy512/article/details/121335289
下面我們使用dbeaver進(jìn)行連接,如下所示步驟
需要注意的是如果你是第一次連接clickhouse,需要下載一些驅(qū)動文件,這里都是自動下載的你直接點擊確定就行,然后我們輸入相關(guān)信即可
需要注意的是由于我們的clickhouse目前并沒有設(shè)置用戶名密碼,所以這里我們不需要填寫,然后點擊測試連接,測試通過則點擊完成即可
到這一步我們的數(shù)據(jù)庫已經(jīng)連上了
3.設(shè)置用戶名和密碼—登陸設(shè)置
這里我們是連接到我們的容器上進(jìn)行用戶名密碼的設(shè)置,
docker exec -it 02e52e00502b /bin/bash
然后進(jìn)入到 clickhouse-server 目錄 cd /etc/clickhouse-server
由于我們的容器上還沒有編輯器,我們這里先安裝一下vim
apt-get update
apt-get install vim -y
修改 clickhouse 的用戶密碼需要在 users.xml 中配置 標(biāo)簽下面就是所有的用戶的配置,默認(rèn)有一個default 用戶
<!-- Users and ACL. -->
<users>
<!-- If user name was not specified, 'default' user is used. -->
<default>
<password></password>
<networks>
<ip>::/0</ip>
</networks>
<profile>default</profile>
<!-- Quota for user. -->
<quota>default</quota>
</default>
</users>
我們找到標(biāo)簽,這里有加密和明文兩種形式,加密可以把 換成<passwordsha256hex>,標(biāo)簽內(nèi)容就是加密后的密碼
<password_sha256_hex>941785b4c29a2cb9bb6bb190c12edef9c8182041b382fe371dbe50e06ff8f6ad</password_sha256_hex>
這里我們就用明文吧
<password>123456</password>
保存退出, 接下來重啟容器,docker restart 02e52e00502b
我們就發(fā)現(xiàn)我們的dbeaver連接不上了,這里我們編輯鏈接輸入帳密就可以了
4.設(shè)置用戶名和密碼—掛載設(shè)置
其實設(shè)置密碼的方法還是有點問題就是我們的容器如果沒了我們的賬戶信息也沒了,不方便運維,所以我們可以把帳密信息也存儲的本地機(jī)器上,然后像掛載數(shù)據(jù)目錄一樣掛在上去。
我們可以先把容器里的信息拷貝一份到本地,然后修改,先創(chuàng)建一個存放配置文件的目錄mkdir -p D:/clickhouse/config
1.切換目錄
cd D:/clickhouse/config
2.將容器內(nèi)config.xml拷貝至主機(jī)config目錄
docker cp clickhouse:/etc/clickhouse-server/config.xml ./config.xml
3.將容器內(nèi)users.xml拷貝至主機(jī)config目錄
docker cp clickhouse:/etc/clickhouse-server/users.xml ./users.xml
這里我們創(chuàng)建一個新的用戶root ,所以我們需要創(chuàng)建一個 標(biāo)簽,添加到 下,和 同級
<root>
<password>123456</password>
<networks><ip>::/0</ip></networks>
<profile>default</profile>
<quota>default</quota>
</root>
停止掉并刪除前面的容器,然后重新運行下面的命令
docker run -d --name clickhouse -p 8123:8123 -p 9000:9000 -v D:/clickhouse/db:/var/lib/clickhouse:rw -v D:/clickhouse/config/config.xml:/etc/clickhouse-server/config.xml -v D:/clickhouse/config/users.xml:/etc/clickhouse-server/users.xml yandex/clickhouse-server
啟動之后我們就可以使用root 用戶來連接了