Docker MySQL官方镜像启动默认初始化创建数据库

编程教程 > Docker Case (676) 2025-03-29 17:52:06

Docker MySQL官方镜像启动默认初始化创建数据库,docker MySQL初始化sql脚本执行,初始化用户sql脚本

操作示例图-da9648d81b574e67b2a9ec510be154a4.png

version: "3.8"

networks: 
  vRouter: 
    external: true #外部网络

services:
  mysql:
    image: mysql:5.7.35
    container_name: mysql
    hostname: mysql
    restart: always
    ports: 
     - 3306:3306
    networks:
      vRouter:
        aliases:
         - mysql.server
    command: [  
      '--character-set-server=utf8mb4',
      '--collation-server=utf8mb4_unicode_ci'
    ]
    environment:
     - MYSQL_ROOT_PASSWORD=root
     - LANG=C.UTF-8 #解决导入中文乱码问题
    volumes:
      - ./data:/var/lib/mysql
      - ./conf.d:/etc/mysql/conf.d
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql
      - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime

    deploy: 
      resources: 
        limits: 
          memory: 1048M

关键配置 

- ./init.sql:/docker-entrypoint-initdb.d/init.sql

说明:

在MySQL官方镜像中,/docker-entrypoint-initdb.d/目录下的sql脚本会在容器初次运行时候执行

根据上面的规则,只需要在init.sql文件中编写一个创建数据库的sql命令即可

create database typecho DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

 

官方原话

When a container is started for the first time, a new database with the specified name will be created and initialized with the provided configuration variables. Furthermore, it will execute files with extensions .sh, .sql and .sql.gz that are found in /docker-entrypoint-initdb.d. Files will be executed in alphabetical order. You can easily populate your mysql services by mounting a SQL dump into that directory and provide custom images with contributed data. SQL files will be imported by default to the database specified by the MYSQL_DATABASE variable.

意思就是挂载到/docker-entrypoint-initdb.d/目录下面的文件(格式为.sh .sql sql.gz)都会执行

 

关联文章:

 

 


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
Docker MySQL官方镜像启动默认初始化创建数据库,docker MySQL初始化sql脚本执行,初始化用户sql脚本version: "3.8"netw
项目依赖说明Docker compose 示例docker-compose.yml 配置示例version: "3.8"networks: demoRouter
案例需求配置示例version: "3.8"networks: demoRouter:services: demo-mysql8: image: mysql:8
Nginx 健康检查命令services: mysql8: image: mysql:8.0.36#....忽略其他.... healthcheck: test
Docker中容器/镜像的备份、恢复和迁移今天,我们将学习如何快速地对docker容器进行快捷备份、恢复和迁移。Docker是一个开源平台,用于自动化部署应用,
Docker从容器复制文件到主机sudo docker cp 容器名称/容器id:容器文件/目录 主机目录示例:sudo docker cp nginx:/et
Docker简介Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可
docker 常用命令整理(持续更新)docker运行容器资源相关查看所有运行docker的资源消耗情况docker stats查看指定运行容器资源消耗情况do
背景Docker 对于新手开发者部署一些中间件或者开发环境比较友好,可惜官方image hub已被F...。内部使用必须依赖三方的镜像库,例如阿里云的https
在执行多次docker-compose build 之后,我们通过命令`docker images`可以看到很多的REPOSITORY 为<none&gtl; 且tag 也是<non...
旧域名:https://hub.docker.com 新域名:https://hubgw.docker.com/
部署目录结构tree -a ././├── conf.d #nginx 自定义配置映射目录│ ├── default.conf #存放一些通用配置(可选)│ ├
前言随着项目升级,目前存在一些项目是jdk8的一些是jdk17的,让Jenkins 使用主机编译环境成为了问题。故此使用docker环境来编译项目,分离各个版本
Ubuntu 系统安装DockerUbuntu 在线安装 Docker-XQLEE'Blog (在线安装,需外网好)Ubuntu 安装Docker 国内适用-X
官方命令docker system prune -a特别注意:该命令会删除没有被使用的镜像 over