docker kibana自定义镜像
Kibana 9.0.1 基础镜像重新打包文档
目录说明
本文档涉及三个工作目录:
| 路径 | 用途 |
|---|---|
/server/new/kibana/origin |
存放从官方镜像复制出来的原始配置文件 |
/server/new/kibana/build |
构建上下文目录,用于打包自定义镜像 |
/server/new/kibana/result |
打包完成后,用于测试启动容器的空路径 |
一、创建 Docker 网络(如已存在可跳过)
sudo docker network create docker_network_es
二、从官方镜像复制配置文件到 origin 目录
1. 创建 origin 目录
sudo mkdir -p /server/new/kibana/origin
2. 启动临时容器
sudo docker run -d \
--name kibana-origin \
--network docker_network_es \
kibana:9.0.1
3. 复制配置文件
sudo docker cp kibana-origin:/usr/share/kibana/config/. /server/new/kibana/origin/
4. 停止并删除临时容器
sudo docker stop kibana-origin && sudo docker rm kibana-origin
三、修改配置文件参数
编辑 /server/new/kibana/origin/kibana.yml:
sudo vim /server/new/kibana/origin/kibana.yml
修改/新增以下参数:
# 服务基础配置
server.host: "0.0.0.0"
server.port: 5601
# Elasticsearch 连接配置
elasticsearch.hosts: ["http://elasticsearch:9200"]
elasticsearch.username: "kibana_system"
elasticsearch.password: "boawayES"
# 中文语言
i18n.locale: "zh-CN"
# 禁用沙箱(截图/报表功能需要)
xpack.screenshotting.browser.chromium.disableSandbox: true
四、准备构建目录并打包镜像
1. 创建构建目录
sudo mkdir -p /server/new/kibana/build
2. 复制配置文件到构建目录
sudo cp -r /server/new/kibana/origin/kibana.yml /server/new/kibana/build/
3. 复制时区文件
sudo cp /etc/localtime /server/new/kibana/build/localtime
sudo cp /etc/timezone /server/new/kibana/build/timezone
4. 修改权限(构建前处理)
cd /server/new/kibana/build
sudo chown -R 1000:0 .
5. 创建 Dockerfile
sudo vim /server/new/kibana/build/Dockerfile
内容:
FROM kibana:9.0.1
ENV TZ=Asia/Shanghai
COPY localtime /etc/localtime
COPY timezone /etc/timezone
COPY kibana.yml /usr/share/kibana/config/kibana.yml
EXPOSE 5601
CMD ["/usr/local/bin/kibana-docker"]
6. 构建镜像
cd /server/new/kibana/build
sudo docker build -t 192.168.2.2/library/kibana-bw:9.0.1 .
7. 推送镜像仓库
sudo docker push 192.168.2.2/library/kibana-bw:9.0.1
8. 导出 tar 包(离线环境)
sudo docker save 192.168.2.2/library/kibana-bw:9.0.1 \
-o /server/new/kibana/kibana-bw-9.0.1.tar
五、在 result 目录用新镜像测试
1. 准备测试目录
sudo mkdir -p /server/new/kibana/result/data
cd /server/new/kibana/result
2. 启动临时容器复制配置文件
sudo docker run -d --name kibana-verify 192.168.2.2/library/kibana-bw:9.0.1 sleep 120
sudo docker cp kibana-verify:/usr/share/kibana/config/. ./config/
sudo docker rm -f kibana-verify
3. 修权限
sudo chown -R 1000:0 config
find config -type f -exec chmod 644 {} \;
find config -type d -exec chmod 755 {} \;
sudo chown -R 1000:0 data
4. 确认配置文件内容正确
cat config/kibana.yml
确认包含你修改的参数。
六、启动最终容器
sudo docker run -d \
--restart=always \
--name kibana \
--network docker_network_es \
-p 5601:5601 \
--privileged \
-v $(pwd)/config:/usr/share/kibana/config \
-v $(pwd)/data:/usr/share/kibana/data \
192.168.2.2/library/kibana-bw:9.0.1
七、验证服务
sleep 40
# 查看日志
sudo docker logs kibana --tail 15
# 检查状态
curl http://localhost:5601/api/status
八、目录结构总结
/server/new/kibana/
├── origin/ # 从官方镜像复制出的原始配置文件
│ └── kibana.yml
│
├── build/ # 构建上下文(用于打包镜像)
│ ├── Dockerfile
│ ├── kibana.yml # 已修改参数
│ ├── localtime # 时区文件
│ └── timezone # 时区文件
│
└── result/ # 测试运行目录
├── config/ # 从镜像复制出的配置(可修改)
└── data/ # Kibana 运行数据(自动生成)
关键注意事项
| 事项 | 说明 |
|---|---|
| 数据目录不能 COPY | data 目录必须让 Kibana 首次启动自己初始化 |
| 权限必须 1000:0 | Kibana 以 uid=1000 运行,config/data 都必须是 1000:0 |
| 不要用 chmod 777 | 777 权限会被安全机制拒绝,必须精确 644/755 + owner 1000 |
| 配置修改在宿主机 | 挂载后改 /server/new/kibana/result/config/kibana.yml,重启即生效 |
| 修改配置后重启 | sudo docker restart kibana |
| kibana_system 密码一致性 | 镜像内密码需与 ES 启动时传入的 kibana_system 密码保持一致 |
| 镜像地址 | 统一使用 192.168.2.2/library/kibana-bw:9.0.1 |
留待后查,同时方便他人
联系我:ivesbao@163.com
联系我:ivesbao@163.com

浙公网安备 33010602011771号