场景
我们希望docker在创建新的InfluxDB容器时,自动执行一些初始化命令,比如创建database、retention policy。
1. 创建初始化脚本
假设叫setup_influxdb.sh
,内容如下:
influx -execute "CREATE DATABASE mydb" # 创建mydb数据库
influx -execute "CREATE RETENTION POLICY one_month ON mydb DURATION 30d REPLICATION 1 DEFAULT" # mydb只保留最近一个月数据
2. 创建Dockerfile文件
FROM influxdb
COPY setup_influxdb.sh /docker-entrypoint-initdb.d/setup_influxdb.sh
InfluxDB容器首次启动时,会执行/docker-entrypoint-initdb.d/
中的脚本。
3. 验证效果
docker build -t myinflux .
docker run -d myinflux
连接到myinflux容器上,看是不是已经存在mydb数据库了。