Docker提取镜像默认配置文件
相关概念:Docker
有些镜像启动后会自带一套默认配置,直接手写容易漏项。更稳妥的方式是:
先启动一个临时容器,再把容器内的默认配置复制出来。
这样适合做两件事:
- 作为本地定制的起点
- 对照镜像升级前后的默认配置差异
Nginx
#!/usr/bin/env bash
set -e
IMAGE="nginx:1.29-alpine"
TMP_CONTAINER="temp_nginx"
mkdir -p ./etc/nginx
mkdir -p ./html
docker run -d --rm --name ${TMP_CONTAINER} ${IMAGE}
docker cp ${TMP_CONTAINER}:/etc/nginx/nginx.conf ./etc/nginx/
docker cp ${TMP_CONTAINER}:/etc/nginx/conf.d ./etc/nginx/
docker cp ${TMP_CONTAINER}:/etc/nginx/mime.types ./etc/nginx/
docker cp ${TMP_CONTAINER}:/usr/share/nginx/html/. ./html/
docker stop ${TMP_CONTAINER}MySQL
docker run -d --rm --name=temp_mysql mysql:8.0
sleep 20
docker cp temp_mysql:/etc/mysql/ ./etc
docker stop temp_mysql适用边界
这种做法适合“把默认配置拿出来研究或改造”,不适合长期依赖临时容器本身。
最终仍然应该把真正使用的配置收敛到自己的目录结构里。