给InfluxDB的docker镜像添加初始化脚本¶
我们希望docker在创建新的InfluxDB容器时,自动执行一些初始化命令,比如创建database、retention policy。
创建初始化脚本¶
假设文件名是setup_influxdb.sh
,内容如下:
influx -execute "CREATE DATABASE mydb" # 创建mydb数据库
influx -execute "CREATE RETENTION POLICY one_month ON mydb DURATION 30d REPLICATION 1 DEFAULT" # mydb只保留最近一个月数据
创建Dockerfile文件¶
文件名是Dockerfile
,注意没有扩展名,内容如下:
FROM influxdb
COPY setup_influxdb.sh /docker-entrypoint-initdb.d/setup_influxdb.sh
InfluxDB容器首次启动时,会执行/docker-entrypoint-initdb.d/
中的脚本。
验证效果¶
确保setup_influxdb.sh
和Dockerfile
这两个文件在同一个文件夹中,cd在该文件夹中,执行如下命令:
docker build -t myinflux .
docker run --name demo -d myinflux
访问demo容器上,看是不是已经存在mydb数据库了。
本文为kyleblog.cn原创,转载请注明出处:https://www.kyleblog.cn/posts/influxdb_docker_init
发布日期:2022-07-14 联系作者