Docker应用部署之mysql篇(day5)


文章目录

  • 前言
  • 一、问题描述
  • 二、解决方案
    • 1. 搜索 MySQL 镜像
    • 2. 拉取 MySQL 镜像
    • 3. 创建并运行 MySQL 容器
      • 参数说明:
    • 4. 验证容器是否运行
    • 5. 进入 MySQL 容器
  • 三、总结

前言

在日常开发和部署中,MySQL 是最常用的关系型数据库之一。借助 Docker,我们可以快速拉取 MySQL 镜像并运行容器,简化数据库的安装和管理。本文将详细介绍如何使用 Docker 部署 MySQL,包括镜像搜索、拉取、创建容器、端口映射和数据持久化等关键步骤。


一、问题描述

在实际项目中,我们通常需要一个可随时启停、易于管理的 MySQL 数据库。手动安装 MySQL 可能涉及较多的配置和依赖问题,而使用 Docker 方式可以大大简化这一过程。

本文的目标是使用 Docker 快速搭建 MySQL 数据库,并进行基本的端口映射和数据持久化,以便后续开发使用。


二、解决方案

1. 搜索 MySQL 镜像

首先,我们可以使用以下命令在 Docker Hub 中搜索 MySQL 相关镜像:

docker search mysql

执行后,将会返回一个 MySQL 相关镜像的列表,其中 mysql 是官方维护的镜像。

2. 拉取 MySQL 镜像

使用以下命令拉取 MySQL 官方镜像:

docker pull mysql:latest

如果需要指定特定版本,例如 MySQL 5.6,可以使用:

docker pull mysql:5.6

在这里插入图片描述

拉取完成后,可以通过 docker images 命令查看本地镜像列表。
在这里插入图片描述

3. 创建并运行 MySQL 容器

运行以下命令,创建MySQL的文件夹:

mkdir mysql
cd mysql

运行以下命令,在 Docker 中创建并启动一个 MySQL 容器:

docker run -id \
-p 3307:3306 \
--name=mysql_app \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.6

参数说明:

  • -i:使容器保持交互模式,允许用户进入。
  • -d:后台运行容器。
  • -p 3307:3306:将宿主机的 3307 端口映射到容器的 3306 端口,防止与本机已有的 MySQL 端口冲突。
  • --name=mysql_app:设置容器名称为 mysql_app
  • -v $PWD/conf:/etc/mysql/conf.d:将宿主机当前目录下的 conf 文件夹挂载到 MySQL 配置目录,方便修改配置。
  • -v $PWD/logs:/logs:将日志文件存储到宿主机的 logs 目录,方便查看日志信息。
  • -v $PWD/data:/var/lib/mysql:将 MySQL 数据库的数据文件存储到宿主机 data 目录,实现数据持久化。
  • -e MYSQL_ROOT_PASSWORD=123456:设置 MySQL root 用户的密码为 123456
  • mysql:5.6:使用 MySQL 5.6 版本。
    在这里插入图片描述

4. 验证容器是否运行

使用以下命令查看正在运行的容器:

docker ps

如果 MySQL 正常运行,你会看到 mysql_container 在列表中。

5. 进入 MySQL 容器

执行以下命令进入 MySQL 容器的 Shell,即可进入 MySQL 命令行

docker exec -it mysql_app mysql -uroot -p123456

在这里插入图片描述
部署成功!

三、总结

本文介绍了如何使用 Docker 部署 MySQL,包括:

  1. 搜索 MySQL 官方镜像
  2. 拉取 MySQL 镜像
  3. 创建 MySQL 容器并设置端口和数据持久化
  4. 验证容器状态并连接 MySQL

通过 Docker 部署 MySQL,避免了繁琐的手动安装过程,使开发环境更加轻量和高效。后续可以基于此进一步配置 MySQL,例如创建用户、调整字符集等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/75844.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Elasticsearch基础】基本核心概念介绍

Elasticsearch作为当前最流行的分布式搜索和分析引擎,其强大的功能背后是一套精心设计的核心概念体系。本文将深入解析Elasticsearch的五大核心概念,帮助开发者构建坚实的技术基础,并为高效使用ES提供理论支撑。 1 索引(Index&…

Qt在ARM中,如何使用drmModeObjectSetProperty 设置 Plane 的 zpos 值

在 Qt 中直接使用 drmModeObjectSetProperty 设置 Plane 的 zpos 值需要结合 Linux DRM/KMS API 和 Qt 的底层窗口系统(如 eglfs 平台插件)。以下是详细步骤和代码示例: 1. 原理说明 DRM/KMS 基础: Plane:负责图层合成…

MFC添加免费版大漠3.1233

先创建一个MFC工程, 添加dm.dll 方法一:通过类向导-添加类-类型库中的MFC类-文件,选择dm.dll,如果没有"添加类型库中的MFC类"选项就用方法二添加 方法二:添加-新建项-MFC-Active或TypeLib-实现接口位置选…

【Linux】应用层协议 HTTP

应用层协议 HTTP 一. HTTP 协议1. URL 地址2. urlencode 和 urldecode3. 请求与响应格式 二. HTTP 请求方法1. GET 和 POST (重点) 三. HTTP 状态码四. HTTP 常见报头五. 手写 HTTP 服务器 HTTP(超文本传输协议)是一种应用层协议,用于在万维网…

【活动回顾】StarRocks Singapore Meetup #2 @Shopee

3 月 13 日,StarRocks 社区在新加坡成功举办了第二场 Meetup 活动,主题为“Empowering Customer-Facing Analytics”。本次活动在 Shopee 新加坡办公室举行,吸引了来自 Shopee、Grab 和 Pinterest 的专家讲师以及 50 多位参会者。大家围绕电商…

Retinexformer:基于 Retinex 的单阶段 Transformer 低光照图像增强方法

开头发点牢骚:本来做的好好都都要中期了,导师怎么突然给我换题目啊。真是绷不住了......又要从头开始学了,唉! 原论文链接:Retinexformer: One-stage Retinex-based Transformer for Low-light Image Enhancement 低光…

后端——AOP异步日志

需求分析 在SpringBoot系统中,一般会对访问系统的请求做日志记录的需求,确保系统的安全维护以及查看接口的调用情况,可以使用AOP对controller层的接口进行增强,作日志记录。日志保存在数据库当中,为了避免影响接口的响…

flink广播算子Broadcast

文章目录 一、Broadcast二、代码示例三.或者第二种(只读取一个csv文件到广播内存中)提示:以下是本篇文章正文内容,下面案例可供参考 一、Broadcast 为了关联一个非广播流(keyed 或者 non-keyed)与一个广播流(BroadcastStream),我们可以调用非广播流的方法 connect(),…

Redis 和 MySQL双写一致性的更新策略有哪些?常见面试题深度解答。

目录 一. 业务数据查询,更新顺序简要分析 二. 更新数据库、查询数据库、更新缓存、查询缓存耗时对比 2.1 更新数据库(最慢) 2.2 查询数据库(较慢) 2.3 更新缓存(次快) 2.4 查询缓存&#…

SRT协议

SRT(Secure Reliable Transport)是一种开源的视频传输协议,专为高丢包、高延迟网络环境设计,结合了UDP的低延迟和TCP的可靠性,广泛应用于直播、远程制作、视频会议等场景。 定位:SRT协议的官方C/C实现库&am…

“征服HTML引号恶魔:“完全解析手册”!!!(quot;表示双引号)

&#x1f6a8;&#x1f4e2; "征服HTML引号恶魔&#xff1a;“完全解析手册” &#x1f4e2;&#x1f6a8; &#x1f3af; 博客引言&#xff1a;当引号变成"恶魔" &#x1f631; 是否遇到过这种情况&#xff1a; 写HTML时满心欢喜输入<div title"他…

npm install 卡在创建项目:sill idealTree buildDeps

参考&#xff1a; https://blog.csdn.net/PengXing_Huang/article/details/136460133 或者再执行 npm install -g cnpm --registryhttps://registry.npm.taobao.org 或者换梯子

c++中cpp文件从编译到执行的过程

C 文件从编写到执行的过程可以分为几个主要阶段&#xff1a;编写代码、预处理、编译、汇编、链接和运行。以下是每个阶段的详细说明&#xff1a; 1. 编写代码 这是整个过程的起点。程序员使用文本编辑器&#xff08;如 VSCode、Sublime Text 或其他 IDE&#xff09;编写 C 源…

PROE 与 STL 格式转换:开启 3D 打印及多元应用的大门

在 3D 设计与制造的复杂生态中&#xff0c;将 PROE 格式转换为 STL 格式绝非无端之举&#xff0c;而是有着深厚且多元的现实需求作为支撑。 一、文件格式介绍​ &#xff08;一&#xff09;PROE 格式​ PROE 作为一款参数化设计软件&#xff0c;采用基于特征的参数化建模技术…

开发中后端返回下划线数据,要不要统一转驼峰?

先说结论。看情况&#xff01;&#xff01;&#xff01;&#xff01; 前端 主要用 JS/TS 建议后端返回 camelCase&#xff0c;减少前端转换成本。后端 主要是 Python/Go 建议保持 snake_case&#xff0c;前端做转换。但是团队统一风格最重要&#xff01;如果统一返回驼峰就驼峰…

docker pull时报错:https://registry-1.docker.io/v2/

原文&#xff1a;https://www.cnblogs.com/sdgtxuyong/p/18647915 https://www.cnblogs.com/OneSeting/p/18532166 docker 换源&#xff0c;解决连接不上的问题。 编辑以下文件&#xff0c;不存在则创建&#xff1a; vim /etc/docker/daemon.json {"registry-mirrors&qu…

Pytorch学习笔记(十二)Learning PyTorch - NLP from Scratch

这篇博客瞄准的是 pytorch 官方教程中 Learning PyTorch 章节的 NLP from Scratch 部分。 官网链接&#xff1a;https://pytorch.org/tutorials/intermediate/nlp_from_scratch_index.html 完整网盘链接: https://pan.baidu.com/s/1L9PVZ-KRDGVER-AJnXOvlQ?pwdaa2m 提取码: …

基础算法02——冒泡排序(Bubble Sort)

冒泡排序&#xff08;Bubble Sort&#xff09; 冒泡排序&#xff1a;是一种简单的排序算法&#xff0c;其基本思想是通过重复遍历要排序的列表&#xff0c;比较相邻的元素&#xff0c;并在必要时&#xff08;即前面的数比后面的数大的时候&#xff09;交换它们的位置&#xff…

RestTemplate远程调用接口方式

1.Post(body空参) 也就是说需要给一个空的json 代码: String getDeviceUrl this.MOVABLE_URL "detected-data/getMachineLists"; // 远程调用 RestTemplate restTemplate new RestTemplate(); restTemplate.getMessageConverters().set(1,new StringHttpMessageC…

ar头显和眼镜图像特效处理

使用一个线程从摄像头或者其他设备循环读取图像数据写入链表&#xff0c;另一个线程从链表循环读取数据并做相应的特效处理&#xff0c;由于写入的速度比读取的快&#xff0c;最终必然会因为写入过快导致线程读写一帧而引发冲突和数据帧正常数据帧被覆盖。最好使用共享内存&…