【工具与中间件】Linux-Docker-Mysql下载与配置

Linux安装docker并使用docker运行mysql容器 yum是一个在 Linux 系统中广泛使用的软件包管理工具,主要用于基于红帽的 Linux 发行版,如 CentOS、Red Hat Enterprise Linux 等。它通过提供一系列功能,极大地简化了软件包的安装、更新、查询和管理过程。接上节,我们给虚拟机打好镜像并且使用ssh工具进行连接。开始尝试使用yum下载一些工具,例如下载vim,vim是一个编辑器,类似于vi指令但强于vi指令,可以将linux文件中的内容做颜色的划分同时还有一些其他的功能。 阅读详情

Linux Docker Mysql

前言

准备做个新项目用于学习与练手,第0步当然是远程环境的配置了。
这里记录个人的Linux下Docker的下载与Docker下载并运行Mysql。

学习目标

  • 学习Linux下安装Docker
  • Docker下安装Mysql

Linux版本
CentOS7 停止维护,于是此处使用 Rocket Linux

  • RocketLinux,内核版本满足大于Docker所需最小版本3.10
  • 本文示例命令为root用户运行,其它权限的情况读者需要视情况使用sudo

下面我们开始!

1. Docker 下载与安装

1.1 内核版本检查

使用如下命令检查当前Linux的内核版本:

uname -r

如果版本小于 Docker 的最小内核要求 3.10,则需要先更换OS了。一般这种情况现在很少见,绝大多数的云服务器Linux内核版本都支持 Docker

1.2 更新yum

rocket linux 与 centOS 一样,使用的是 yum 作为软件包管理器

yum update

1.3 执行 Docker 安装脚本

curl -sSL https://get.docker.com | sh

官方 docker 手册推荐的安装脚本。若使用该命令无法安装,则参考文末的补充与总结小节,结合其它参考教程,解决网络等原因无法安装的问题。

1.4 检查安装结果

查看docker版本

docker -v

执行后若返回docker版本则说明成功

系统启动docker
检查并启动 docker:

systemctl status docker

systemctl start docker

之后,我们可以设置docker开机自启:

systemctl enable docker 

docker hello-world

docker run hello-world

若我们没有事先将 hello-world pull 下来,这个命令的执行会事先执行docker pull。

出现以下截图所示说明成功:
01

国内的服务器执行上述命令 docker pull 的过程也有可能因为网络等原因报443。遇到该问题的读者也可参考文末的补充与总结小节,结合其它参考教程,解决docker pull 443的问题。

移除 hello-world 容器镜像
考虑到hello-world镜像与容器仅仅是为了验证docker的安装与使用,无别的用途,若读者与我一样有洁癖,可参考如下移除hello-world容器与镜像:

查看当前所有容器并复制 hello-world 的 id:

docker ps -a

移除 hello-world 容器:

docker rm <container id>

查看镜像并复制 hello-world 的 id:

docker images

移除 hello-world 镜像:

docker rmi <image id>

2. Docker-Mysql下载与配置

2.1 docker 下载 mysql

搜索docker hub上的镜像

docker search mysql

我们可以使用 docker search 查看docker hub上的mysql镜像。如果没有指定版本的要求,查看到镜像后即可选择版本pull下来。

指定版本下载

docker pull mysql:8.0

我这里需要用到的是mysql 8.0, 于是我个人采用的是指定版本下载。

查看镜像

docker images

2.2 mysql 配置

下载完 docker 镜像后,我们通常需要做一些配置后再进行挂载。

创建挂挂载目录
例如,我个人是在home下创建mysql挂载目录

cd /home

mkdir -p docker_mysql_conf/config

mkdir -p docker_mysql_conf/data

在config文件夹创建cnf配置文件并配置

vi my.cnf

参考配置:

[mysqld]
# 设置 3306 端口
port = 3306

# 允许最大连接数
max_connections = 1000

# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors = 100

# 服务端使用的字符集默认为 UTF8
character-set-server = utf8mb4

# 配置时区 
default_time_zone = '+8:00'

# 创建新表时将使用的默认存储引擎
default-storage-engine = INNODB

# 默认使用 mysql_native_password 插件认证
#default_authentication_plugin = mysql_native_password

# 是否对 sql 语句大小写敏感,1:不敏感
#lower_case_table_names = 1

# MySQL 连接闲置超过一定时间后(单位:秒)将会被强行关闭
# MySQL 默认的 wait_timeout 值为 8 个小时, interactive_timeout 参数需要同时配置才能生效
#interactive_timeout = 1800
#wait_timeout = 1800

# Metadata Lock最大时长(秒),一般用于控制 alter 操作的最大时长 sine mysql5.6
# 执行 DML 操作时除了增加 innodb 事务锁外还增加 Metadata Lock,其他 alter(DDL)session 将阻塞
#lock_wait_timeout = 3600

# 内部内存临时表的最大值。
# 比如大数据量的 group by / order by 时可能用到临时表,
# 超过了这个值将写入磁盘,系统 IO 压力增大
tmp_table_size = 64M
max_heap_table_size = 64M
[mysql]
default-character-set = utf8mb4
[client]
default-character-set = utf8mb4

关于更多更具体的my.cnf配置介绍,篇幅有限,需要读者自行查询

2.3 启动 mysql

查看当前Linux有哪些可用端口
我的个人项目出于安全考虑,需要将mysql服务的端口暴露在3306以外的端口。查看TCP(如SSH等)、UDP与其它正在监听的端口:

netstat -tuln

之后,选择一个目标端口,查看目前是否已被占用或监听:

netstat -tuln | grep :13301

若无返回,那么这个端口一般都是可用的。
若无换端口映射mysql服务的需要,读者可忽略此步。

带参数创建镜像实例

docker run -d -p 13301:3306 \
-v /home/docker_mysql_conf/config:/etc/my.cnf \
-v /home/docker_mysql_conf/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD="nutrition_work" --name nutrition_work mysql

这个命令的具体意思是,-d使用docker守护进程后台启动,-p将虚拟机的3306端口映射到当前机器的13301端口,-v选择上面提到过的自定义目录及文件挂载,对应虚拟机里的mysql默认文件。之后,-e设置mysql的root密码属性值,最后–name 后面带别名以及镜像名。

2.4 连接 mysql

若读者和我一样是在服务器上配置的mysql,那么则需要事先提前查看服务器的安全组,确保端口能合理地开放。

此处我使用连接工具直接测试连接:
02

之后,就可以配置到项目里愉快地开发了!

3. 补充与总结

Docker 安装脚本443解决方案

实际上,由于众所周知的原因(特别是2024年6月以来),国内的服务器直接使用此安装脚本通常会报443网络无法连通。

于是我参考了优快云-解决Docker安装不了的问题这篇文章进行解决。其中主要过程:

  • 安装yum-utils: yum install -y yum-utils
  • 我的服务器在国内,执行以下命令添加repo:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 阿里云的镜像repo截止至发文前尚可用,接着执行:
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

执行后系统会显示下载进度条,最终出现类似以下截图的Complete信息则说明下载完成:
03

Docker pull 443 解决方案

当我们执行 docker pull 命令时可能会因为网络原因出现类似以下报错信息的问题:

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Retrying in 1 second
docker: error pulling image configuration: download failed after attempts=6: dial tcp 103.97.3.19:443: i/o timeout.

此时,我们可以给 docker 配置镜像加速器。一般大的服务器厂商都会提供镜像加速服务,此时,我们可以通过阅读其官方文档找到镜像加速的方法。

例如,我的是阿里云,于是我根据阿里云docker镜像加速器文档进行了如下步骤的配置:

etc下创建docker文件夹

mkdir -p /etc/docker

tee命令创建docker daemon.json文件并配置镜像加速url

tee /etc/docker/daemon.json <<-'EOF'

{
  "registry-mirrors": ["https://[your-mirror].mirror.aliyuncs.com"]
}

EOF

注意,这个步骤具体的镜像加速地址,每个用户的镜像工具不一样,需要在各自登录的阿里云镜像容器服务控制台获取。

reload守护进程,重启docker

systemctl daemon-reload

systemctl restart docker

之后,我们再重试docker pull命令,若成功则说明加速器起效,若依然不成功,就可能需要参考其它解决方案进行解决了,例如给服务器设置网络代理。

参考教程

docker中下载mysql容器实例(详细) 简单版 第一步:查看mysql镜像 name 镜像名字 description 描述 stars 热度 ofiicial 官方(是否在docker hub官方仓库有提供此镜像) auotmated 自动化的 第二步:拉取mysql镜像到本地中 第三步:使用mysql镜像创建并运行mysql... 阅读详情

相关推荐

【Docker】之安装 MySQL

1、下载 MySQL 镜像 下载最新版本的 MySQL 镜像(TAG 默认为 latest): docker pull mysql 下载指定版本的 MySQL 镜像(以 5.7 版本为例): docker pull mysql:5.7 更多 MySQL 版本镜像: 1)进入 docker 镜像官网:https://hub.docker.com/,在镜像搜索栏中输入 MySQL,选择 MySQL 官方镜像: 2)进入 MySQL 详情页面后,点击 Tags 切换到标签页面,可以看到各个版本的 MySQ

王廷云的博客 2997

Docker容器中安装Mysql

是您希望设置的 MySQL root 用户的密码。可以将其替换为您自己的密码。通过运行此命令,将创建并运行一个具有指定配置和设置的 MySQL 容器。不指定版本号,默认下载最新版本:(我是直接下载的最新版本)进入官网进行简单注册,即可找到自己想下载的版本。回到虚拟机界面,执行下面命令来拉取mysql镜像。在运行中,则说明 MySQL 容器已成功启动。下面是讲解Navicat 16进行远程连接。如果以上步骤出现问题,请看大佬视频讲解。主机ip在虚拟机中使用命令。查询到主机地址输入即可。

weixin_73822660的博客 1231

使用Docker容器在Linux上部署MySQL

本节介绍如何使用Docker容器部署MySQL服务器。虽然docker客户端在以下说明中用于演示目的,但通常,Oracle提供的MySQL容器映像可以与符合的任何容器工具一起使用。在使用Docker容器部署MySQL之前,请确保您了解运行容器的安全风险并正确缓解它们。

zhuguoli200851的博客 1696

Docker下载安装mysql

v /root/data:/var/lib/mysql :将数据库文件挂载到宿主机 /root/data的位置,防止数据丢失。2、找到自己想要的mysql版本,下载镜像(不写版本号默认下载最新的)MYSQL_ROOT_PASSWORD:数据库密码。解释:--name:给容器定义个名字。1、查找mysql版本。3、运行mysql容器。

qq_37559701的博客 1589

Docker容器化部署实战:从镜像管理到中间件配置完整指南

容器化技术作为现代应用部署的核心解决方案,通过操作系统级虚拟化实现应用隔离。其原理是将应用及其依赖打包成标准化的镜像,在容器运行时实现资源隔离和快速部署。这种技术显著提升了开发运维效率,解决了环境不一致问题,广泛应用于微服务架构、持续集成和云原生场景。Docker作为主流容器平台,其镜像分层机制和容器生命周期管理是关键技术要点。在实际运维中,通过Docker部署MySQL、Redis等中间件能够实现快速环境搭建,配合Docker Compose进行多容器编排,为自动化运维提供坚实基础。本文聚焦Docker镜

391

在Linux上使用Docker安装MySQL

首先安装Docker,然后拉取MySQL镜像并创建MySQL容器。连接到容器后,我们可以使用MySQL客户端工具执行各种数据库操作。一旦Docker安装成功,我们可以拉取MySQL镜像来创建MySQL容器。成功连接后,你就可以在MySQL容器中执行各种MySQL命令了。一旦连接到MySQL容器,你可以使用常规的MySQL命令进行数据库操作。在MySQL镜像下载完成后,我们可以创建一个MySQL容器并运行它。现在,我们可以使用MySQL客户端工具连接到MySQL容器了。步骤3:创建MySQL容器。

ZaxfSass的博客 448

linux下通过Docker安装mysql

作为一个测试人员,在学习的过程中,可能经常需要去在linux下安装一些软件,有的软件通过搜索别人的博客教程进行安装的话,随着一些软件的升级,以及虚拟机/服务器镜像版本不一致等外部因素,都...

专注测试领域知识分享和技能提升 7861

AntV G6边动画实战:手把手教你实现数据流向箭头与虚线流动效果

本文详细解析了如何使用AntV G6实现数据流向箭头与虚线流动效果,通过自定义边动画提升数据可视化的动态表现力。从基础环境搭建到核心概念讲解,再到虚线流动动画和箭头路径动画的具体实现与参数调控,帮助开发者掌握G6边动画的高级技巧,适用于网络流量监控、数据传递等场景。

weixin_28487433的博客 268

Docker 入门篇(三)Docker desktop安装应用及中间件镜像

v D:\developsoft\docker\DockerDesktopWSL\data\redis\redis.conf:/etc/redis/redis.conf #将配置文件映射到容器。2)下载相应版本的redis.conf 文件:https://github.com/redis/redis/tags。redis-server /etc/redis/redis.conf #使用容器内的redis配置启动服务。在浏览器中访问地址:http://localhost:18848/nacos/

dazhong2012的专栏 8270

TexGen模型导出ABAQUS inp文件时纱线材料属性缺失?5分钟快速修复指南

本文针对TexGen模型导出ABAQUS inp文件时纱线材料属性缺失的问题,提供了快速修复指南。通过手动编辑inp文件或使用Python脚本自动补全材料属性,帮助复合材料仿真工程师高效解决问题。文章还介绍了TexGen导出前的预防性设置和ABAQUS中的验证技巧,确保仿真分析的准确性。

qsc901234的博客 250

倍福TwinCAT3 OPC UA配置全流程:从安装到无密码访问(附常见问题解决)

本文提供了倍福TwinCAT3 OPC UA配置的完整实战指南,重点讲解如何实现无密码游客访问。从软件安装、授权配置、服务器初始化到深度排错,详细解析了配置流程中的关键步骤与常见陷阱,帮助工程师高效打通PLC与上位系统的数据通讯通道。

vulkan6gpu的博客 473

docker(下载及安装、常用命令、迁移备份、dockerfile、常用中间件安装、Docker私有仓库、总结)

一款产品从开发到上线,从操作系统到运行环境,再到应用配置。作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员都是考验之前在服务器配置一个应用的运行环境,要安装各种软件,就拿实际做过的项目的环境来说吧,Java/Tomcat/MySQL/JDBC驱动包等。安装和配置这些东西有多麻烦就不说了,它还不能跨平台。假如我们是在 Windows 上安装的这些环境,到了 Linux 又得重新装。

小丁的博客 1720

快速配置ORCAD导出智能PDF原理图

在OrCAD 中导出类似Altium Designer的智能PDF(即交互式PDF);

QingNing3028的博客 3951

Docker 部署神器:告别 Linux 命令烦恼,一键搞定 Java 应用与中间件部署

本文主要说明Docker基础以及项目部署

少年你真的要止步于此嘛。 1214

UR机械臂正逆运动学解析:从DH参数到8组解的完整求解策略

本文深入解析UR机械臂的正逆运动学求解策略,从DH参数原理到完整的8组解求解方法。详细介绍了正运动学的坐标变换过程,以及逆运动学中Atan2函数和三角恒等变换的应用,并揭示了8组解的产生机制。通过实际案例和调试技巧,帮助工程师掌握UR机械臂运动学求解的核心技术。

weixin_29094775的博客 414

5分钟搞定SNMP工具安装:从Linux到Windows的snmpwalk/snmpget全攻略

本文提供了SNMP工具(snmpwalk/snmpget)在Linux和Windows系统上的快速安装与使用指南,涵盖从基础安装到高阶应用的全面解析。通过详细的命令示例和故障排查技巧,帮助用户快速掌握网络设备监控与诊断的核心技能,提升运维效率。

weixin_29248313的博客 557

Linux上mysql配置以及docker启动mysql

如果将该文件与mysql镜像产生的容器的/var/lib/mysql(容器中数据库存储文件)关联,而服务器中mysql是一直启动,如果直接使用/var/lib/mysql来关联docker容器的/var/lib/mysql,会报错。链接:https://pan.baidu.com/s/1Ws0ToDCKrtN8rjtmBy4aNQ。链接:https://pan.baidu.com/s/1YIQdyCGcIascgNoEdRZ3Bw。在/mydata/mysql/conf新建文件my.cnf。

m0_61842984的博客 1057

【WorkBuddy从入门到精通实战教程】使用手册 第 1 章 初识 WorkBuddy

腾讯推出全场景AI办公助手WorkBuddy,突破传统聊天机器人局限,实现从需求理解到结果交付的全流程自动化。该工具通过自然语言交互,可自主规划执行复杂任务,包括文件处理、数据分析、PPT制作等,支持多模型切换和技能扩展。内置权限管控机制确保本地文件操作安全,显著降低人工切换工具的成本,提升职场效率。

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 1346

docker(1) 利用docker下载配置mysql5

利用docker来准备mysql5,可以简化mysql服务的部署过程。 前提: Linux系统(最好是centos7 内核版本 >= 3.10)用uname -r命令可以查看centos7的内核版本 且你的Linux系统可以上网,完成了网络配置(下一篇文章会有,待更新) 下面开始正式准备mysql 准备docker容器(docker就是一个容器,里面装入各种镜像资...

阿森的博客 447

数据中台之流程引擎:Activiti工作流引擎详解

一. 简介 BPM: BPM规范及BPM软件 BPMN: Activiti 7 1.工作流俩种方式 1.状态值跟踪法 1.工作流软件 2.工作流引擎对比 1.Activiti 2.JBPM5 3.flowable 4.liteflow 3.步骤 1.部署Activiti 1.流程定义 1.流程定义部署 1.启动流程实例 1.任务查询代办 1.用户办理任务 1.流程结束 二. 核心 Activiti 基础架构.png Activiti 7大接口.png RepositoryService:提供一系列管理流

GIS摆渡人 1689

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Linux下MySQL安装及Docker部署MySQL

下载 wget https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.48-linux-glibc2.12-x86_64.tar.gz Linux创建分组和用户 - 创建分组 groupadd mysql - 创建用户 useradd mysql -r -g mysql - 验证分组和用户 id mysql 创建程序、数据存储目录 - 创建目录 mkdir /home/mysql/{program,data,conf} -p - 子目录 ...

qq_16608213的博客 1353

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

使用docker在linux上部署MySQL

docker部署框架支持mysql服务器的简单安装和配置。本篇介绍如何使用MySQL Server Docker映像。 首先需要在系统上安装docker,参见https://docs.docker.com/engine/installation/。 注意:需要使用sudo运行docker命令,或创建docker用户组,然后向其中添加运行docker命令的用户。 基本步骤 注意:mysql团队维护的MySQL Docker映像是专门为linux平台构建的。其他平台不受支持。 1,下载MySQL Do

milaoshu76的专栏 3万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Docker镜像与容器管理实战:从环境配置到中间件部署

容器化技术通过将应用程序及其依赖环境打包成独立单元,解决了传统部署中的版本冲突和环境依赖问题。其核心原理是基于镜像和容器的轻量级虚拟化,实现应用环境的标准化和隔离。在工程实践中,Docker作为主流容器技术,能够显著提升部署效率和资源利用率。常见的应用场景包括微服务架构、持续集成和云原生应用部署。本文聚焦Docker镜像拉取加速和容器生命周期管理,通过MySQL、Redis等中间件的实战案例,详细解析镜像管理、数据持久化、网络配置等关键操作,帮助开发者掌握从本地测试到生产环境的容器化部署技能。

weixin_34343000的博客 540

简单记录Linux 安装Docker + MySQL

有时候我们在创建完容器以后才发现有一些配置没有加上,而且更改MySQL的配置又比较麻烦,就直接按着以下步骤走就行了。Docker安装mysql相对于直装MySQL而言要简单许多,在创建一个MySQL容器的时候可以直接。一般来说,安装完Docker时,系统会自动创建docker的用户组。Docker官方文档提到,在下载Docker之前需要先将。这里只简单记录一下docker的安装。

onlyone__的博客 1164

在Linux系统中用Docker安装mysql

在Linux系统中用Docker安装mysql

weixin_56306210的博客 4070
上一篇: 【Python】Scrapy整合FastAPI实现爬虫API 附大量示例
下一篇: 【工具与中间件】Linux git 与 Docker 下载并配置 redis
CoderSharry
博客等级 码龄4年 515粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值