dockerfile使用记录:在生产中使用dockerfile构建mysql详细教学加案例

这篇具有很好参考价值的文章主要介绍了dockerfile使用记录:在生产中使用dockerfile构建mysql详细教学加案例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

dockerfile使用记录:在生产中使用dockerfile构建mysql详细教学加案例

1.1 Dockerfile是用于构建Docker镜像的一种文本文件,其中包含指令和参数。MySQL的Dockerfile主要用于构建MySQL服务的镜像,以下是一个基本的MySQL Dockerfile示例:

# 使用官方MySQL镜像
FROM mysql:latest
# 设置root用户的密码
ENV MYSQL_ROOT_PASSWORD=123456
# 设置字符集
ENV LANG=C.UTF-8
# 将自定义配置文件复制到镜像中
COPY my.cnf /etc/mysql/my.cnf
# 将初始化SQL脚本复制到镜像中
COPY init.sql /docker-entrypoint-initdb.d/
# 持久化数据卷
VOLUME /var/lib/mysql

该Dockerfile主要有以下几个部分:

FROM mysql:latest:表示该镜像是基于官方MySQL镜像构建的,使用latest标签表示使用最新版本。
ENV MYSQL_ROOT_PASSWORD=123456:设置MySQL的root用户密码为123456,这是一个环境变量。
ENV LANG=C.UTF-8:设置字符集为UTF-8,确保正确的字符处理。
COPY my.cnf /etc/mysql/my.cnf:将自定义的MySQL配置文件my.cnf复制到镜像中的/etc/mysql/my.cnf路径下。
COPY init.sql /docker-entrypoint-initdb.d/:将初始化SQL脚本init.sql复制到镜像中的/docker-entrypoint-initdb.d/路径下,该脚本将在容器启动时自动执行,用于初始化数据库。
VOLUME /var/lib/mysql:将MySQL数据目录挂载到宿主机上的/var/lib/mysql目录中,以便将数据存储在宿主机的持久化数据卷中。

1.2 编写配置文件和SQL脚本

在本地创建一个my.cnf配置文件,用于配置MySQL服务的参数。例如,以下是一个简单的my.cnf文件:

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
max_connections=100

1.3 在本地创建一个init.sql文件,用于初始化数据库。例如,以下是一个简单的init.sql文件:

通常情况下,需要自己编写init.sql文件,以便在Docker启动时创建所需的数据库和表,插入数据等。例如,以下是一个简单的init.sql示例:

CREATE DATABASE mydb;
USE mydb;

CREATE TABLE users (
  id INT(11) NOT NULL AUTO_INCREMENT,
  name VARCHAR(50) NOT NULL,
  email VARCHAR(50) NOT NULL,
  PRIMARY KEY (id)
);
INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com');
INSERT INTO users (name, email) VALUES ('Jane Doe', 'jane@example.com');

该脚本将创建一个名为mydb的数据库,并在其中创建一个名为users的表格,并插入两条记录。
可以根据实际需求编写init.sql文件,以便在Docker镜像启动时自动初始化数据库。在Dockerfile中,可以使用COPY init.sql /docker-entrypoint-initdb.d/命令将该脚本复制到镜像中的/docker-entrypoint-initdb.d/目录中,以便在容器启动时自动执行。

1.4 构建Docker镜像

在命令行中进入Dockerfile所在目录,执行以下命令构建Docker镜像:

docker build -t my-mysql .

该命令会在当前目录下查找Dockerfile文件,并构建名为my-mysql的Docker镜像。

1.5 运行Docker容器

在命令行中执行以下命令运行Docker容器:

docker run -d -p 3306:3306 --name my-mysql -v /path/to/data:/var/lib/mysql my-mysql

该命令将启动一个名为my-mysql的Docker容器,并将容器内部的MySQL服务的3306端口映射到宿主机的3306端口上。-v /path/to/data:/var/lib/mysql表示将MySQL数据目录挂载到宿主机上的/path/to/data目录中,实现数据持久化。文章来源地址https://www.toymoban.com/news/detail-624698.html

到了这里,关于dockerfile使用记录:在生产中使用dockerfile构建mysql详细教学加案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Dockerfile构建SSH、Systemctl、Nginx、Tomcat、MySQL镜像实验

    目录 一、构建SSH镜像 二、构建Systemctl镜像 三、构建Nginx镜像 四、构建Tomcat镜像 五、构建MySQL镜像 1、创建镜像目录方便管理 2、创建编写dockerfile文件 3、生成镜像 4、启动容器并修改root密码 1、创建镜像目录方便管理 2、创建编写dockerfile文件 3、生成镜像 4、进入容器 1、创建

    2024年02月15日
    浏览(31)
  • 基于dockerfile构建sshd、httpd、nginx、tomcat、mysql、lnmp、redis镜像

    一、镜像概述 Docker 镜像是Docker容器技术中的核心,也是应用打包构建发布的标准格式。一个完整的镜像可以支撑多个容器的运行,在Docker的整个使用过程中,进入一个已经定型的容器之后,就可以在容器中进行操作,最常见的操作就是在容器中安装应用服务。 如果想要把已

    2024年02月14日
    浏览(33)
  • 使用Dockerfile构建nginx镜像

     雨雀:使用Dockerfile构建nginx镜像 · 语雀 (yuque.com)  yaml文件用法:02 Docker三剑客之一-Dockerfile · 语雀 (yuque.com) 1.使用Dockerfile构建nginx镜像 2.编写Dockerfile yaml文件用法:02 Docker三剑客之一-Dockerfile · 语雀 (yuque.com) 3.构建镜像 4.运行镜像   

    2024年02月12日
    浏览(68)
  • Docker技术入门| Part03:Dockerfile详解(Dockerfile概念、Dockerfile 指令、使用Dockerfile构建镜像)

    Docker镜像原理 Docker镜像是由特殊的文件系统叠加而成 最底端是bootfs,并使用宿主机的bootfs 第二层是root文件系统rootfs,称为base image 然后再往上可以叠加其他的镜像文件 统文件系统(UnionFile System)技术能够将不同的层整合成一个文件系统,为这些层提供了一个统的视角,这样就隐

    2024年02月09日
    浏览(35)
  • Docker 项目如何使用 Dockerfile 构建镜像?

    1.1、Docker 简介 :讲述 Docker 的起源、它是如何革新现代软件开发的,以及它为开发者和运维团队带来的好处。重点强调 Docker 的轻量级特性和它在提高应用部署、扩展和隔离方面的优势。 本文已收录于,我的技术网站 ddkk.com,有大厂完整面经,工作技术,架构师成长之路,等

    2024年01月16日
    浏览(56)
  • Docker 解析:使用 Dockerfile 自动构建镜像

    简介 Docker 容器是使用 基础 镜像创建的。一个镜像可以是基本的,只包含操作系统的基本要素,也可以包含一个准备好启动的复杂的预构建应用程序堆栈。 在使用 Docker 构建镜像时,每个操作(例如执行的命令,比如 apt-get install)都会形成一个新的层叠在之前的层之上。然

    2024年03月26日
    浏览(45)
  • 使用yolov8的Dockerfile构建Docker

            因网络原因我先将需要下载的文件下载好存放在yolov8项目的 docker 文件夹中  1、Arial.ttf 下载地址:https://ultralytics.com/assets/Arial.ttf 2、 Arial.Unicode.ttf 下载地址: https://ultralytics.com/assets/Arial.Unicode.ttf 3、yolov8权重文件 下载地址:https://github.com/ultralytics/assets/releases/

    2024年02月04日
    浏览(36)
  • 使用Dockerfile来构建服务的镜像,并部署在容器中

    在项目的根目录下,创建Dockerfile 基础写法: 对上面的每一行进行详细说明: (1) FROM openjdk:8-jre-slim 基础镜像 【这个镜像包含了 OpenJDK 8 (Java 运行环境)和一个精简版的操作系统。】 (2) MAINTAINER Forrest 镜像的作者 (3) ENV PARAMS=\\\"\\\" TZ=PRC 1)设置环境变量 2)PARAMS表示传给m

    2024年01月22日
    浏览(31)
  • 使用dockerfile手动构建JDK11镜像运行容器并校验

    Docker官方维护镜像的公共仓库网站 Docker Hub 国内无法访问了,大部分镜像无法下载,准备逐步构建自己的镜像库。【转载aliyun官方-容器镜像服务 ACR】Docker常见问题 阿里云容器镜像服务ACR(Alibaba Cloud Container Registry)是面向容器镜像、Helm Chart等符合OCI标准的云原生制品安全托

    2024年02月03日
    浏览(33)
  • 使用Dockerfile构建python项目镜像(flask框架+redis+环境变量)

    有时候如连接redis的url可能发生变化等,这时候就需要把一些变量放在环境变量中。         使用 --env 和 -e 是一样效果的。 1.1.1 配置Dockerfile文件 1.1.2 编写python示例程序 示例代码: 1.1.3 构建镜像         首先将python代码和dockerfile文件上传到已经安装了docker的服务器

    2024年02月07日
    浏览(37)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包