谷粒商城学习-10-docker安装mysql

news2024/11/19 2:28:09

文章目录

  • 一,拉取MySQL镜像
    • 1,搜索MySQL的Docker镜像
    • 2,拉取MySQL镜像
    • 3,查看已经拉取的镜像
  • 二,创建、启动MySQL容器
    • 1,使用docker run创建启动容器
    • 2,使用docker ps查看运行状态的容器
    • 3,验证容器是否可用
      • 3.1 使用docker命令进入mysql命令行客户端
      • 3.2 使用可视化的连接工具Dbeaver
    • 4,修改MySQL配置文件
  • 三,目录挂载和端口映射
    • 1,目录挂载 (Volume Mounting)
      • 原理
      • 作用
      • 示例
    • 2,端口映射 (Port Mapping)
      • 原理
      • 作用
      • 示例

本节主要是讲解如何用Docker安装MySQL,解释容器的基本知识,包括下载镜像、创建容器、启动容器、端口映射、目录挂载、进入容器等等。

一,拉取MySQL镜像

1,搜索MySQL的Docker镜像

下载镜像前可以先查询镜像仓库有哪些镜像,执行如下命令查询MySQL镜像。

docker search mysql

在这里插入图片描述
当然去Docker Hub搜索能看到更详细的信息。

2,拉取MySQL镜像

docker pull mysql:5.7

如上命令表示把标签为5.7的MySQL镜像拉取到本地。

  • docker pull 表示从镜像仓库拉取镜像
  • mysql:5.7 表示标签为5.7的mysql镜像,不同机构组织个人都可能上传mysql镜像,Docker Hub通过标签进行区分,如果不加标签,默认下载最新版本

3,查看已经拉取的镜像

docker images

在这里插入图片描述

二,创建、启动MySQL容器

1,使用docker run创建启动容器

docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

参数说明:

  • -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
  • -v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
  • -v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
  • -v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
  • -e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码
  • –name 给容器取的名称,便于区分容器
  • -d 表示以守护进程(daemon)模式运行容器,不影响当前shell窗口的操作

2,使用docker ps查看运行状态的容器

docker ps

可以看到一个名为mysql的容器正在运行。
在这里插入图片描述

3,验证容器是否可用

3.1 使用docker命令进入mysql命令行客户端

docker exec -it mysql mysql -uroot -proot

如下,可以连接到mysql的命令行工具,执行查询数据库的命令。
在这里插入图片描述

3.2 使用可视化的连接工具Dbeaver

在这里插入图片描述

4,修改MySQL配置文件

创建MySQL容器时,使用的是MySQL的默认配置,可以按需做一些更改,这里主要是改默认的字符配置信息。

创建一个my.cnf的mysql配置文件,因为已经把宿主机的目录和容器的目录做了映射,所以可以直接在宿主机修改配置文件,MySQL容器重启时会读这个目录下的配置。

vi /mydata/mysql/conf/my.cnf

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

注意:解决MySQL连接慢的问题,可以在配置文件中加入如下,并重启 mysql。

[mysqld]
skip-name-resolve

重启mysql容器

docker restart mysql

三,目录挂载和端口映射

在上一步创建Docker容器的命令中使用两个常用的参数:

  • -v 目录挂载
  • -p 端口映射

下面详细介绍下这两个参数,在我们创建Docker容器中常常使用这两个参数。

Docker 容器的目录挂载和端口映射是两种非常重要的特性,它们允许容器与宿主机之间进行数据和网络的交互。下面是这两种特性的原理和作用的详细解释,以及具体的示例。

1,目录挂载 (Volume Mounting)

原理

目录挂载允许宿主机文件系统中的目录被“挂载”到容器内。这意味着容器可以读写宿主机上的文件,反之亦然。挂载的目录在容器内部表现为普通的本地文件系统路径,但实际上它指向的是宿主机上的实际目录。

作用

  1. 数据持久化:即使容器被删除,挂载的数据仍然保留在宿主机上。
  2. 数据共享:多个容器可以挂载同一个目录,从而共享数据。
  3. 配置管理:可以将敏感的配置文件从宿主机挂载到容器,避免硬编码在镜像中。

示例

假设你有一个 MySQL 数据库容器,你希望数据存储在宿主机上以确保数据持久化。你可以使用如下命令:

docker run -d \
    --name mysql-container \
    -v /path/to/local/data:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=my-secret-pw \
    mysql:latest

在这个例子中,-v /path/to/local/data:/var/lib/mysql 表示宿主机上的 /path/to/local/data 目录被挂载到了容器内的 /var/lib/mysql 目录。这样,所有容器内的数据库文件都将保存在宿主机的指定目录中。

2,端口映射 (Port Mapping)

原理

端口映射允许容器内的网络端口与宿主机上的端口进行关联。这意味着外部网络可以通过宿主机的特定端口访问容器内的服务。Docker 在容器启动时创建这种映射关系。

作用

  1. 服务暴露:使容器内的服务可从外部网络访问。
  2. 端口重定向:可以将容器的多个端口映射到宿主机的不同端口,解决端口冲突。
  3. 网络隔离:通过选择性地暴露端口,增加网络安全性。

示例

假设你运行了一个 web 服务器容器,它监听在容器内部的 80 端口,但你想通过宿主机的 8080 端口访问它。你可以使用以下命令:

docker run -d \
    --name web-server \
    -p 8080:80 \
    nginx:latest

在这个例子中,-p 8080:80 表示宿主机上的 8080 端口被映射到容器内的 80 端口。因此,任何对宿主机 8080 端口的请求都会被转发到容器内的 web 服务器。

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

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

相关文章

深入了解图解并发线程

1. 线程状态 要求 掌握 Java 线程六种状态掌握 Java 线程状态转换能理解五种状态与六种状态两种说法的区别 六种状态及转换 分别是 新建 当一个线程对象被创建,但还未调用 start 方法时处于新建状态此时未与操作系统底层线程关联可运行 调用了 start 方法&#…

docker集群部署主从mysql

搭建一个mysql集群,1主2从,使用docker容器 一、创建docker的mysql镜像 下次补上,因为现在很多网络不能直接pull,操作下次补上。 二、创建mysql容器 创建容器1 docker run -it -d --name mysql_1 -p 7001:3306 --net mynet --…

Portainer 是一个开源的容器管理平台-非常直观好用的Docker图形化项目

在这个容器化技术大行其道的时代,Docker和Kubernetes几乎成了技术圈的新宠。可是管理起容器来,有时候还是有点头大。命令行操作对于某些小伙伴来说,可能还是有点不太友好。 今天开源君分享一个叫 Portainer 的开源项目,一个用来简…

Zabbix 配置grafana对接

zabbix对接grafana简介 Zabbix与Grafana对接可以实现更加丰富和美观的数据可视化,可以利用Grafana强大的可视化功能来展示Zabbix收集的数据。 Grafana 本身是提供了Zabbix的对接插件,开箱即用,安装好了之后点击 enable 一下就能启用。然后就…

Mysql 的第二次作业

一、数据库 1、登陆数据库 2、创建数据库zoo 3、修改数据库zoo字符集为gbk 4、选择当前数据库为zoo 5、查看创建数据库zoo信息 6、删除数据库zoo 1)登陆数据库。 打开命令行,输入登陆用户名和密码。 mysql -uroot -p123456 ​ 2)切换数据库…

macOS版ChatGPT更新:修复AI对话纯文本存储问题

猫头虎 🐯 建联猫头虎,商务合作,产品评测,产品推广,个人自媒体创作,超级个体,涨粉秘籍,一起探索编程世界的无限可能! macOS版ChatGPT更新:修复AI对话纯文本…

鸿蒙系统的开发与学习

1.开发工具的下载 DevEco Studio-HarmonyOS Next Beta版-华为开发者联盟 安装、环境配置时,建议 自定义目录 注意:路径中不要有 中文、特殊字符。 2.ArkTS基础总结 1)三种数据类型 ① string 字符串:描述信息 ② number 数…

内网学习第6天 liunx定时任务 环境变量和权限配置,以及数据库提权

内网学习的第5天呢??我就没有写,那个主要就是利用内核漏洞以及suid,来进行提权的。 我在虚拟机上面进行提权,我没有成功,我本地的虚拟机呢,扫出来的漏洞poc也没有让我提权成功。所以我就没有写…

《简历宝典》01 - 一文带你学会如何写一份糟糕透顶的简历

我们每个人几乎都会面对找工作这件事,而找工作或者说求职首先就是要写一份简历。今天狗哥将以一个不同的视角带你写一份无与伦比,糟糕透顶的求职简历,说实话,其实几年前,我就是这么写的。 目录 1. 文件名 2. 基本信…

2024年新考纲下的PMP考试有多难?全面解读!

一、PMP考试是什么,PMP证书有什么用? PMP(Project Management Professional)是指项目管理专业人士。PMP考试由美国PMI发起,旨在严格评估项目管理人员的知识和技能,以确定其是否具备高品质的资格认证。 PM…

新手入门:无服务器函数和FaaS简介

无服务器(Serverless)架构的价值在于其成本效益、弹性和扩展性、简化的开发和部署流程、高可用性和可靠性以及使开发者能够专注于业务逻辑。通过自动化资源调配和按需计费,无服务器架构能够降低成本并适应流量变化,同时简化开发流…

去中心化技术对云计算的潜在影响与应用

随着去中心化技术如区块链的发展,云计算领域也面临着新的变革与挑战。本文将深入探讨去中心化技术对云计算的潜在影响及其应用前景,从技术基础到实际案例,逐步揭示这一新兴领域的发展趋势与可能带来的革新。 1. 介绍:云计算的现状…

Jackson与Json、Json和各种Java数据类型的互相转化

jackson是什么 json是最常用的数据交换格式 Jackson是最流行的Json库 首先对于这种JSON序列化的库其实有非常多,比如我们熟悉的Gson,Fastjson等等,当然技术没有完全的好坏,但是从使用情况和社区生态等方面综合看来,Ja…

重塑财务团队核心任务,推动企业采取新行动

众所周知,大部分企业都拥有传统意义上的财务规划职能,其主要任务是去控制企业的关键利益,但随着市场复杂性的提高和行业领域的多样性,每个财务团队负责的内容和承担的角色将有所变化。这也是财务功能多年来随着市场变化而不断演变…

《Attention is all you need》通俗解读,彻底理解版:注意力机制的运算

这是《Attention Is All You Need》通俗解读的第3篇,前文见这里: 《Attention is all you need》通俗解读,彻底理解版:part1 《Attention is all you need》通俗解读,彻底理解版:part2 最近为了撰写这部…

1688商家数据采集软件使用方法|阿里1688商家信息采集软件

大镜山阿里1688商家数据采集使用方法 打开如下图的窗口,输入采集的关键词,再点“开始采集”和“获取手机”即可。 等待采集完成即可! 点”导出“,即可把采集结果导出。 如果需要按1688网站过滤条件过滤数据后采集的话&#xff…

通义千问接入进阶:流式、文件、图片、上下文

通义千问接入SSE 接入流式对话、上下文对话、图片对话、文件对话 上篇文章有很多小伙伴再问:开启了流式(SSE)如何以API的形式返回数据呢? 这篇文章就来给大家解惑。 实现过程 如何生成key和模型类型请翻找之前的文章&#xf…

远程控制电脑的4个方法,不受地域限制,探索未来办公的无限可能

在数字化浪潮席卷全球的今天,远程控制电脑已不再是科幻电影里的情节,而是我们触手可及的现实,是现代科技所赋予的真实能力。远程控制电脑进行办公已成为越来越多人的选择,不仅让生活更加便捷,还在一定程度上提高了工作…

java连接AD(Microsoft Active Directory)模拟用户登录认证

文章目录 一、背景二、页面效果三、代码LdapLoginRequest请求实体类Response返回结果MsgADTest测试类补充说明代码 四、认证结果认证成功认证失败 本人其他相关文章链接 一、背景 亲测可用,之前搜索了很多博客,啥样的都有,就是不介绍报错以及配置用处&a…

洗地机品牌哪个最好用?硬核推荐五大实力爆款洗地机

在这个忙碌的时代,家就是我们放松的港湾,但要保持它的清洁与舒适常常很不容易。每天拖着疲惫的身体回家,还要面对地板上那些难缠的灰尘、污渍,真是非常让人头疼。不过,洗地机的出现就像是给家务清洁装上了智能引擎&…