轻松使用Docker启动MySQL并初始化SQL(Dockerfile)

这篇具有很好参考价值的文章主要介绍了轻松使用Docker启动MySQL并初始化SQL(Dockerfile)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用Docker启动MySQL并初始化SQL

在本教程中,我们将使用Docker来启动MySQL容器,并通过初始化SQL脚本来创建数据库和表。此外,我们还将演示如何将MySQL密码外置到环境变量文件中,以增加安全性。

准备工作

在开始之前,请确保已经安装了Docker。如果尚未安装,可以参考我前面的教程

编写Dockerfile

首先,我们需要创建一个名为Dockerfile的文件,并在其中编写以下内容:

# 使用MySQL的官方镜像作为基础
FROM mysql:latest

# 复制初始化SQL脚本到容器中
COPY /目标Sql文件目录/*.sql /docker-entrypoint-initdb.d/

# 设置环境变量
ENV MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql_root_password

# 暴露MySQL默认端口
EXPOSE 3306

在上述Dockerfile中,我们使用了MySQL官方镜像作为基础镜像,并将初始化SQL脚本init.sql复制到容器的/docker-entrypoint-initdb.d/目录中。这样,MySQL容器在启动时会自动执行该SQL脚本。

我们还通过设置MYSQL_ROOT_PASSWORD_FILE环境变量来指定MySQL的root密码文件的路径。这样,我们可以将密码保存在环境变量文件中,而不是明文写入Dockerfile,提高了安全性。

编写初始化SQL脚本

接下来,我们需要创建一个名为init.sql的文件,并在其中编写我们的初始化SQL语句。例如,以下示例将创建一个名为mydatabase的数据库和一个名为mytable的表:

CREATE DATABASE IF NOT EXISTS mydatabase;
USE mydatabase;

CREATE TABLE IF NOT EXISTS mytable (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL
);

您可以根据自己的需求来编写初始化SQL脚本。

构建和运行Docker容器

现在,我们可以使用以下步骤来构建和运行我们的MySQL容器:

  1. 在与Dockerfile和init.sql文件相同的目录中,创建一个名为.env的文件,并在其中添加以下内容:

    MYSQL_ROOT_PASSWORD=your_password
    

    your_password替换为您想要设置的MySQL root密码。

  2. 打开终端或命令提示符,导航到包含Dockerfile和init.sql文件的目录。

  3. 运行以下命令来构建Docker镜像:

    docker build -t mysql-container .
    

    这将根据Dockerfile构建一个名为mysql-container的镜像。

  4. 构建完成后,运行以下命令来启动MySQL容器:

    docker run -d --name mysql-instance --env-file .env mysql-container
    

    这将在后台启动一个名为mysql-instance的MySQL容器,并使用.env文件中的环境变量设置MySQL的root密码。

  5. 等待片刻,MySQL容器将启动并执行初始化SQL脚本。您可以使用以下命令查看容器的日志输出:

    docker logs mysql-instance
    

    如果一切顺利,您将看到MySQL容器成功启动并执行了初始化SQL脚本。

恭喜!您已成功使用Docker启动MySQL并初始化SQL。

总结

通过使用Docker和初始化SQL脚本,我们可以轻松地启动MySQL容器并自动执行所需的数据库和表的创建。将MySQL密码外置到环境变量文件中可以提高安全性。希望本教程能帮助您快速入门使用Docker来管理MySQL容器。如有任何疑问,请随时提问。文章来源地址https://www.toymoban.com/news/detail-836910.html

到了这里,关于轻松使用Docker启动MySQL并初始化SQL(Dockerfile)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL初始化之后启动报错(mysqld: Table ‘mysql.plugin‘ doesn‘t exist)

    初始化之后,服务无法启动。错误日志error-log 报错如下: (mysql库下的系统表不存在) 系统表 不存在,数据库刚进行完初始化呀,不合理呀? 排出了目录权限问题 半同步插件的参数在初始化的时候不能开启 处理方式是 注释掉 下面参数,重新初始化。 完结撒花。

    2024年02月04日
    浏览(37)
  • 三、MySQL实例初始化、设置、服务启动关闭、环境变量配置、客户端登入(一篇足以从白走到黑)

    目录 1、选择安装的电脑类型、设置端口号 2、选择mysql账号密码加密规则 3、设置root账户密码 4、设置mysql服务名和服务启动策略 5、执行设置(初始化mysql实例) 6、完成设置  7、MySQL数据库服务的启动和停止 方式一:图形化方式 方式二:命令行方式 8、MySQL数据库环境变量的

    2024年01月18日
    浏览(45)
  • AliLinux的使用Docker初始化服务(详细)

    AliLinux是基于CentOS的。 1、java 环境 2、mysql环境 3、kafka环境 4、flink环境 5、dinky环境 这些环境,本想直接dnf安装在宿主机上,思来想去,还是用docker方便学习,也方便统一管理和使用 sudo dnf update sudo dnf upgrade 2.1、熟悉docker的命令 2.2、添加Docker存储库 需要注意不同的linux的版本

    2024年02月21日
    浏览(38)
  • Linux内存初始化-启动阶段的内存初始化

    本文代码基于ARM64平台, Linux kernel 5.15 在加载kernel 之前, kernel对于系统是有一定要求的,明确规定了boot阶段必须要把MMU关闭: 那么在进入kernel之后, 就必须有一个使能MMU, 建立映射的过程, 本文描述kernel启动阶段进行内存初始化相关的操作。 在初始化阶段,我们mapping二段

    2024年02月08日
    浏览(67)
  • 初始化k8s(启动)

    一位普通的程序员,慢慢在努力变强! 温馨提示:初始化k8s的前置配置,请查看以下连接! k8s初始化前的基础配置 提示:如果你是单机,需要开启污点 本章节完成了,各位正在努力的程序员们,如果你们觉得本文章对您有用的话,或者是你学到了一些东西,希望用您那漂亮

    2024年02月11日
    浏览(37)
  • 启动Flink显示初始化状态怎么解决?

    Flink On Yarn模式 问题 思路 具体实现思路 脚本如下 flinkInitDeal.sh

    2024年02月14日
    浏览(55)
  • SpringBoot启动时的几种初始化操作

    1、静态代码块 static静态代码块,在类加载的时候即自动执行。 2、构造方法 在对象初始化时执行。执行顺序在static静态代码块之后。 3、通过注解@PostConstruct实现 @PostConstruct注解使用在方法上,它可以被用来标注一个 非静态的 void 方法 ,这个方法会在该类被 Spring 容器初始化

    2024年02月09日
    浏览(37)
  • 一文详解 springboot 项目启动时异步执行初始化逻辑

    你知道的越多,你不知道的越多 点赞再看,养成习惯 如果您有疑问或者见解,欢迎指教: 企鹅:869192208 前言 前面的工作中,为了提高地区数据的响应时间,需要加载全国区划数据到 redis 中缓存起来,这个过程希望在项目时启动。 由于初始化全国区划到 redis 中这个过程是

    2024年02月12日
    浏览(36)
  • PLSQL启动报错:Initialization error,不能初始化

    出现场景:我这里原来有个旧版的PLSQL,想用新版的又装了个新版,启动的时候报错 第一个提示明显看到是和程序位数相关的,不管是32位还是64位要做到向匹配 第二个提示可以看到是和oci.dll文件的设置相关 登录的时候先点取消,不使用用户登录,进入客户端 检查PLSQL的OC

    2024年01月23日
    浏览(49)
  • 华为云云服务器评测|初始化配置SSH连接 & 安装MySQL的docker镜像 & 安装redis以及主从搭建 & 7.2版本redis.conf配置文件

    1.云耀云服务器L实例初始化配置,设置密码,ssh连接; 2.安装docker,安装运行mysql容器; 3.redis镜像的拉取,创建运行容器; 4.搭建redis主从,一主一从,7.2版本的redis.conf配置文件; 设置密码,官方要求复杂一点 进行远程登陆配置 添加开放的端口 在finalShell中新建SSH连接 系统

    2024年02月10日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包