您的位置 首页 linux 运维

docker-entrypoint-initdb.d

docker-entrypoint-initdb.d 是许多官方数据库 Docker 镜像(如 MySQL、PostgreSQL、MongoDB 等)支持的一个特殊目录,用于存放数据库初始化脚本。

工作原理
自动执行:当数据库容器首次启动时,会自动执行该目录下的所有脚本
仅首次执行:只有在数据库首次初始化时执行,避免每次容器重启都执行
按字母顺序:脚本按照文件名字母顺序执行

支持的文件类型

.sh - Shell 脚本
.sql - SQL 脚本文件
.sql.gz - 压缩的 SQL 脚本文件

使用方法

1. 通过 Dockerfile 复制脚本

FROM mysql:8.0

# 复制初始化脚本到指定目录
COPY init-scripts/ /docker-entrypoint-initdb.d/

2. 通过 volume 挂载

docker run -v ./init-scripts:/docker-entrypoint-initdb.d/ mysql:8.0

3. 在 docker-compose.yml 中使用

version: '3'
services:
  mysql:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: password
    volumes:
      - ./init-scripts:/docker-entrypoint-initdb.d/
      - mysql_data:/var/lib/mysql

volumes:
  mysql_data:

幂等性是数学和计算机科学中的一个概念,指一个操作或函数可以被多次执行,但结果始终保持一致,不会因为重复执行而改变。

欢迎来撩 : 汇总all

白眉大叔

关于白眉大叔linux云计算: 白眉大叔

热门文章