0. 先创建个网络后面都会用到
docker network create john-net
1. docker部署postgresql
###docker安装默认是md5认证,所以这里需要指定初始用户名密码,不然登录不了。
vim postgres.sh
#! /bin/bash
#### docker single postgresql manage shell ########
if [ ! -n "$1" ]; then
echo "accept [start|restart|stop]"
exit 0
fi
if [ $1 == "start" ]; then
/usr/bin/docker run --network=john-net --restart=always -d --name docker-postgresql \
-v "$PWD/conf/postgresql.conf":/etc/postgresql/postgresql.conf \
-v "$PWD/data":/var/lib/postgresql/data \
-v "$PWD/logs":/var/log/postgresql \
-p 7003:7003 \
-e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=admin postgres \
-c 'config_file=/etc/postgresql/postgresql.conf'
elif [ $1 == "restart" ]; then
/usr/bin/docker rm -f docker-postgresql
/usr/bin/docker run --network=john-net --restart=always -d --name docker-postgresql \
-v "$PWD/conf/postgresql.conf":/etc/postgresql/postgresql.conf \
-v "$PWD/pgdata":/var/lib/postgresql/data \
-v "$PWD/logs":/var/log/postgresql \
-p 7003:7003 \
-e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=admin postgres \
-c 'config_file=/etc/postgresql/postgresql.conf'
else
/usr/bin/docker container stop docker-postgresql
fi
#下面每一步都很关键,请认真阅读
# 提前创建好conf、data、logs目录并提供postgresql.conf配置文件
# postgres.sh和conf、data、logs在同级目录,postgresql.conf在conf下
mkdir conf data logs
#配置postgresql,配置如果跟下面不一致,postgres.sh也要做相应的调整
vim conf/postgresql.conf
data_directory = '/var/lib/postgresql/data'
listen_addresses = '*'
port = 7003
log_directory = '/var/log/postgresql'
# 启动/重启/停止postgresql
sh postgres.sh start/restart/stop
第一次启动大概率会报错(文件夹权限导致)
1. 配置文件权限太大会报错,755就OK,不要改成777
2. 日志文件夹权限太小会报错
# 修改文件权限,然后重启
chown -R user:group logs && sh postgres.sh restart
user:group 调整与data目录权限一致即可
2. docker部署mysql
vim mysql.sh
#! /bin/bash
#### docker single mysql manage shell ########
if [ ! -n "$1" ]; then
echo "accept [start|restart|stop]"
exit 0
fi
if [ $1 == "start" ]; then
/usr/bin/docker run --network=john-net -p 7004:3306 \
-v $PWD/conf:/etc/mysql \
-v $PWD/data:/var/lib/mysql \
-v $PWD/logs:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=admin \
--privileged=true --restart=always \
--name docker-mysql -d mysql:5.7
echo mysql started ...
elif [ $1 == "restart" ]; then
/usr/bin/docker container rm -f docker-mysql
/usr/bin/docker run --network=john-net -p 7004:3306 \
-v $PWD/conf:/etc/mysql \
-v $PWD/data:/var/lib/mysql \
-v $PWD/logs:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=admin \
--privileged=true --restart=always \
--name docker-mysql -d mysql:5.7
else
/usr/bin/docker container stop docker-mysql
fi
#下面每一步都很关键,请认真阅读
# 提前创建好conf、data、logs目录并提供my.cnf配置文件
# mysql.sh和conf、data、logs在同级目录,my.cnf在conf下
mkdir conf data logs
#配置mysql,配置如果跟下面不一致,mysql.sh也要做相应的调整
vim conf/my.cnf
[mysqld]
datadir = /var/lib/mysql
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 3
log_output = FILE
# 也可以自定义一个配置文件(只要是.cnf结尾就可以),放到/etc/mysql/conf.d/目录
# 对应宿主机就是$PWD/conf/conf.d/目录 如$PWD/conf/conf.d/mysql.cnf
# !includedir /etc/mysql/conf.d/
# 启动/重启/停止mysql
sh mysql.sh start/restart/stop
第一次启动大概率会报错(文件夹权限导致)
1. 配置文件权限太大会报错,755就OK,不要改成777
2. 日志文件夹权限太小会报错
# 修改文件权限,然后重启
chown -R user:group logs && sh mysql.sh restart
user:group 调整与data目录权限一致即可
3. docker 部署clickhouse
# clickhouse语法:https://clickhouse.tech/docs/zh/sql-reference/syntax/
vim clickhouse.sh
#! /bin/bash
#### docker single clickhouse manage shell ########
if [ ! -n "$1" ]; then
echo "accept [start|restart|stop]"
exit 0
fi
if [ $1 == "start" ]; then
/usr/bin/docker run --network=john-net -p 7005:8123 \
-v $PWD/conf:/etc/clickhouse-server \
-v $PWD/data:/var/lib/clickhouse \
-v $PWD/logs:/var/log/clickhouse-server \
--privileged=true --restart=always \
--name docker-clickhouse -d yandex/clickhouse-server
echo clickhouse started ...
elif [ $1 == "restart" ]; then
#/usr/bin/rm -i -rf $PWD/logs/* $PWD/data/*
/usr/bin/docker container rm -f docker-clickhouse
/usr/bin/docker run --network=john-net -p 7005:8123 \
-v $PWD/conf:/etc/clickhouse-server \
-v $PWD/data:/var/lib/clickhouse \
-v $PWD/logs:/var/log/clickhouse-server \
--privileged=true --restart=always \
--name docker-clickhouse -d yandex/clickhouse-server
else
/usr/bin/docker container stop docker-clickhouse
fi
#下面每一步都很关键,请认真阅读
# 提前创建好conf、data、logs目录并提供config.xml和users.xml配置文件
# clickhouse.sh和conf、data、logs在同级目录,config.xml和users.xml在conf下
mkdir conf data logs
# 获取config.xml和users.xml
docker run --rm -d --name clickhouse yandex/clickhouse-server(新开个窗口执行)
docker cp clickhouse:/etc/clickhouse-server/config.xml conf/
docker cp clickhouse:/etc/clickhouse-server/users.xml conf/
# 默认用户default,无密码,不能创建其他用户并分配权限,这里只改默认用户配置,
# 让它能管理其他用户。其他配置默认
# 修改clickhouse默认用户
vim conf/users.xml
# 只要把前面的注释取消就可以了
<access_management>1</access_management>
# 任意客户端登录clickhouse(账号default,无密码),创建管理员账号
CREATE USER root IDENTIFIED WITH PLAINTEXT_PASSWORD BY 'root';
GRANT ALL ON *.* WITH GRANT OPTION TO root;
# 启动/重启/停止clickhouse
sh clickhouse.sh start/restart/stop
第一次启动大概率会报错(文件夹权限导致)
1. 配置文件权限太大会报错,755就OK,不要改成777
2. 日志文件夹权限太小会报错
# 修改文件权限,然后重启
chown -R user:group logs && sh clickhouse.sh restart
user:group 调整与data目录权限一致即可