Linux中安装Docker,并使用Docker安装MySQL和Redis
1、安装docker
1卸载系统之前的docker
yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
2、安装Docker-CE
#安装必须的依赖
sudo yum install -y yum-utils \device-mapper-persistent-data lvm2
#查看是否安装成功
yum list installed | grep -E 'yum-utils|device-mapper-persistent-data|lvm2'
#设置dockerrepo的yum位置
#sudo yum-config-manager --add-repo #https://download.docker.com/linux/centos/docker-ce.repo
#下面是国内镜像网站
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#安装docker,以及docker-cli sudo yum install docker-ce docker-ce-cli containerd.io
[!CAUTION]
注意
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 的解释执行
sudo yum clean all和sudo yum makecache命令后,你已经清理了YUM的缓存并重新生成了缓存。这是解决YUM相关错误的一个常见步骤,可以解决因缓存导致的一些问题。接下来,你可以根据之前遇到的问题采取不同的策略:
- 重新尝试安装:
清理缓存并重新生成缓存后,你可以尝试重新执行之前的安装命令:
sudo yum install -y docker-ce docker-ce-cli containerd.io
- 解决依赖问题:
如果之前的错误是由于依赖问题导致的,你可能需要手动解决这些依赖。这可能包括检查模块状态、寻找特定版本的软件包或使用模块管理命令来安装所需的依赖。
- 使用
--nobest选项:如果YUM无法找到最佳候选软件包,你可以使用
--nobest选项来安装可用的软件包,即使它们不是最佳候选:sudo yum install --nobest -y docker-ce docker-ce-cli containerd.io
- 使用
--allowerasing选项:如果安装过程中存在软件包冲突,可以使用
--allowerasing选项来允许YUM替换或重新安装软件包:sudo yum install --allowerasing -y docker-ce docker-ce-cli containerd.io执行
sudo yum install --allowerasing -y docker-ce docker-ce-cli containerd.io命令后,如果Docker成功安装,你可以按照以下步骤进行后续操作:
- 启动Docker服务:
安装完成后,你需要启动Docker服务。可以使用以下命令:
sudo systemctl start docker
- 设置Docker服务开机自启:
为了确保Docker在系统启动时自动启动,可以使用以下命令:
sudo systemctl enable docker
- 验证Docker安装:
验证Docker是否安装成功,可以通过运行一个测试容器来实现:
sudo docker run hello-world这个命令会下载一个测试镜像,并运行它。如果Docker安装正确,你将看到一条消息,说明它正在容器中运行。如果不成功也没关系,可能是网络的问题
- 检查Docker版本:
如果需要,你可以检查Docker的版本,以确认安装了哪个版本:
sudo docker --version
- 非root用户运行Docker:
默认情况下,Docker需要root权限来运行。如果你希望以非root用户身份运行Docker,可以添加用户到
docker组:sudo usermod -aG docker your-username将
your-username替换成你的用户名。之后,你需要注销并重新登录,或者重启系统以使这个变更生效。
3、启动docker
sudo systemctl start docker
4、设置docker开机自启
sudo systemctl enable docker
5、配置docker镜像加速
#阿里云,容器镜像服务
#下面只是例子,没有实际效果
sudo mkdir -p /etc/docker
sudo tee/etc/docker/daemon.json<<-'EOF'
{"registry-mirrors"["https://***************.mirror.aliyuncs.com"] }
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
#操作过程如下:
操作过程:
图1

图2

2、docker 安装mysql
1、下载镜像文件
docker pull mysql:5.7
2、创建实例并启动
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 用户的密码
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
#解释:
#skip-name-resolve:跳过域名解析
3、通过容器的mysql命令行工具连接
docker exec -it mysql mysql -uroot -p

[!CAUTION]
注意
恭喜,你已经成功使用 docker exec -it 命令进入了名为 mysql 的 Docker 容器,并启动了 MySQL 客户端,以 root 用户身份登录。现在你处于 MySQL 的命令行界面,可以执行 SQL 命令来管理数据库。
以下是一些基本的 MySQL 命令,你可以在 mysql> 提示符下尝试:
查看所有数据库:
SHOW DATABASES;
选择一个数据库(例如 mysql 数据库):USE mysql;
查看当前数据库中的所有表:SHOW TABLES;
查看某个表的结构(例如 user 表):DESC user;
退出 MySQL 客户端:执行命令 \q 或者输入 exit,然后按回车键。
获取帮助:在 MySQL 提示符下输入 help; 或者 \h 来获取帮助信息。
请记住,MySQL 命令通常以分号 ; 结尾,并且每个命令之后都需要按回车键来执行。
4、设置root远程访问
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
flush privileges;
[!CAUTION]
注意
这段代码用于在 MySQL 中授予
root用户从任何主机('%'表示任意主机)连接并拥有所有数据库和表的所有效权利(ALL PRIVILEGES)。同时,该命令还包含了WITH GRANT OPTION,这意味着root用户还可以将权限授予其他用户。具体来说,这段代码执行了以下操作:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root':- 授予
root用户所有权限。-
ON *.*表示这些权限适用于所有数据库和表。-
TO 'root'@'%'表示这些权限适用于从任何 IP 地址连接的root用户。-
IDENTIFIED BY 'root'设置root用户的密码。
WITH GRANT OPTION:- 允许
root用户授予或撤销其他用户的权限。
FLUSH PRIVILEGES;:- 这个命令用于重新加载授权表,使权限更改立即生效。在某些情况下,如果是通过
CREATE USER或GRANT命令添加用户或授予权限,可能需要执行此命令。执行位置:
这段代码应该在 MySQL 容器中执行,而不是在 Linux 用户环境中执行。你需要先进入 MySQL 容器的 MySQL 客户端:
docker exec -it mysql mysql -uroot -p在提示输入密码时,输入
root用户的密码(假设你之前设置的密码是root),然后你将进入 MySQL 的命令行界面。在那里,你可以执行上述 SQL 命令。安全警告:
使用
root用户并从任何主机('%')授予所有权限可能会带来安全风险,因为它允许任何人从任何地方以root用户身份连接到你的 MySQL 服务器。在生产环境中,建议仅授予必要的权限,并且仅允许受信任的主机连接。此外,使用强密码和考虑使用更安全的认证机制也是非常重要的。如果你正在设置开发环境或者测试环境,并且了解潜在的安全风险,那么你可以按照上述方式进行操作。但对于生产环境,请采取更严格的安全措施。
5、进入容器文件系统
docker exec -it mysql /bin/bash
3、docker 安装redis
1、下载镜像文件
docker pull redis
2、创建实例并启动
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.confdocker run -p 6379:6379 --name redis \-v /mydata/redis/data:/data \-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \-d redis redis-server /etc/redis/redis.conf
3、使用redis镜像执行redis-cli命令连接
docker exec -it redis redis-cli
如果您想进入 Redis 容器进行操作,可以使用:
docker exec -it redis /bin/bash
相关文章:
Linux中安装Docker,并使用Docker安装MySQL和Redis
1、安装docker 1卸载系统之前的docker yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine2、安装Docker-CE #安装必须的依赖 sudo yum install -y yum-utils \device-map…...
期货短线交易的核心技术是什么
一、市场分析是短线交易的基础: 技术分析在短线交易中尤为重要,包括K线图、均线系统、成交量与持仓量等指标。K线图可以帮助交易者识别关键价格形态和趋势线,从而判断市场走势。均线系统则可以利用短期均线交叉作为买卖信号,如金…...
VSCode+Vite+Vue3断点调试
目录 lunch.json创建 vite.config.ts 打断点运行 lunch.json创建 首先,点击VSCode左上角,甲壳虫运行的按钮,然后点击运行与调试,选择chrome浏览器,修改成一下配置。 { // 使用 IntelliSense 了解相关属性。 // 悬停…...
RPC框架原理(一)
RPC框架原理 网络和IO的关系,IO(input和output)面向的是谁?OSI 7层参考模型,TCP/IP协议为什么会出现一个会话层三次握手socket心跳keep alive四次挥手 网络IO(IO模型) IO框架底层 学习顺序&…...
LCTF 2018 bestphp‘s revenge
考点:Soap原生类Session反序列化CRLF注入 <?php highlight_file(__FILE__); $b implode; call_user_func($_GET[f], $_POST); session_start(); if (isset($_GET[name])) { $_SESSION[name] $_GET[name]; } var_dump($_SESSION); $a array(reset($_…...
MySQL主从搭建--保姆级教学
MYSQL主从搭建步骤 主节点 # 进入目录 cd /opt# 下载安装包 wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz# 解压 tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz# 拷贝到/usr/local mv /opt/mysql-8.0.20-linux-g…...
Modbus通信协议--RTU
一、RTU介绍 MODBUS协议支持多种功能码,不同的功能码对应不同的操作: 0x01读线圈状态0x02读离散输入状态0x03读保持寄存器0x04读输入寄存器0x05写单个线圈0x06写单个保持寄存器0x0F写多个线圈0x10写多个保持寄存器 二、实验 1.0x03功能码读单个保持寄…...
我是大学生,应该选系统运维方向,还是web开发方向?
选择系统运维方向还是Web开发方向取决于你的兴趣、职业目标和个人技能。以下是对这两个方向的详细对比和建议,帮助你做出更明智的选择 双方比较 🤦♀️系统运维方向 优点: 稳定性:系统运维工作通常比较稳定,许多…...
Qt窗口与对话框
目录 Qt窗口 1.菜单栏 2.工具栏 3.状态栏 4.滑动窗口 QT对话框 1.基础对话框QDiaog 创建新的ui文件 模态对话框与非模态对话框 2.消息对话框 QMessageBox 3.QColorDialog 4.QFileDialog文件对话框 5.QFontDialog 6.QInputDialog Qt窗口 前言:之前以上…...
【笔记】Windows 中 一键部署本地私人专属知识库:MaxKB + Docker + MaxKB docker + Ollama
Docker的部署: Docker下载直接进入链接: https://www.docker.com/ Docker使用需要启动Docker,启动Docker以后,会在桌面右下角看到Docker的一个图标: 只有启动了Docker以后,Docker的各种命令才可以使用。 好像还需要…...
【Vue】scoped解决样式冲突
默认情况下写在组件中的样式会 全局生效 → 因此很容易造成多个组件之间的样式冲突问题。 全局样式: 默认组件中的样式会作用到全局,任何一个组件中都会受到此样式的影响 局部样式: 可以给组件加上scoped 属性,可以让样式只作用于当前组件 一、代码示例 BaseOne…...
word模板内容替换
1.pom引入依赖: <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.0.5</version> </dependency> <dependency><groupId>com.deepoove</groupId><a…...
docker安装和使用
1. docker-ce Docker Community Edition (CE): 功能: 这是 Docker 的主要组件,用于创建、管理和运行容器。它包括 Docker 守护进程 (dockerd),该守护进程负责处理容器的生命周期,包括创建、启动、停止和删除容器。用途: 允许用户在其系统上…...
【AIGC X UML 落地】通过多智能体实现自然语言绘制UML图
前天写了篇博文讲到用PlantUML来绘制C类图和流程图。后台有读者留言,问这步能否自动化生成,不想学习 PlantUML 语法。 我想了下,发现这事可行,确实可以做到通过自然语言的描述就能实现 UML图的绘制,昨天晚上加了个班到…...
C++访问越界
常见场景 访问数组元素越界vector容器访问等 vector<int>;vec<2>;字符串访问越界string str;str[2];array数组访问越界字符串处理,没有添加’\0’字符,导致访问字符串的时候越界了;使用类型强转,让一个大…...
MATLAB format
在MATLAB中,format 是一个函数,用于控制命令窗口中数值的显示格式。这个函数可以设置数值的精度、显示的位数等。以下是一些常用的 format 命令: format long:以默认的长格式显示数值,通常显示15位有效数字。format s…...
Face Forgery Detection by 3D Decomposition
文章目录 Face Forgery Detection by 3D Decomposition研究背景研究目标创新点方法提出问题研究过程技术贡献实验结果未来工作Face Forgery Detection by 3D Decomposition 会议:CVPR2021 作者: 研究背景 面部伪造引发关注传统面部伪造检测主要关注原始RGB图像研究目标 将…...
socket网络编程——多进程、多线程处理并发
如下图所示, 当一个客户端与服务器建立连接以后,服务器端 accept()返回,进而准备循环接收客户端发过来的数据。 如果客户端暂时没发数据,服务端会在 recv()阻塞。此时,其他客户端向服务器发起连接后,由于服务器阻塞了,无法执行 accept()接受连接,也就是其他客户端发送…...
C++---模板进阶(非类型模板参数,模板的特化,模板分离编译)
我们都学习和使用过模板,而这篇文章我们来将一些更深入的知识。在此之前,我们在使用C编程时可以看到模板是随处可见的,它能支持泛型编程。模板包括函数模板和类模板,我们有的人可能会说是模板函数和模板类,但严格讲这样…...
锂电池寿命预测 | Matlab基于SSA-SVR麻雀优化支持向量回归的锂离子电池剩余寿命预测
目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 【锂电池剩余寿命RUL预测案例】 锂电池寿命预测 | Matlab基于SSA-SVR麻雀优化支持向量回归的锂离子电池剩余寿命预测(完整源码和数据) 1、提取NASA数据集的电池容量,以历史容量作…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
【LeetCode】算法详解#6 ---除自身以外数组的乘积
1.题目介绍 给定一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O…...
高防服务器价格高原因分析
高防服务器的价格较高,主要是由于其特殊的防御机制、硬件配置、运营维护等多方面的综合成本。以下从技术、资源和服务三个维度详细解析高防服务器昂贵的原因: 一、硬件与技术投入 大带宽需求 DDoS攻击通过占用大量带宽资源瘫痪目标服务器,因此…...
【Ftrace 专栏】Ftrace 参考博文
ftrace、perf、bcc、bpftrace、ply、simple_perf的使用Ftrace 基本用法Linux 利用 ftrace 分析内核调用如何利用ftrace精确跟踪特定进程调度信息使用 ftrace 进行追踪延迟Linux-培训笔记-ftracehttps://www.kernel.org/doc/html/v4.18/trace/events.htmlhttps://blog.csdn.net/…...
13.10 LangGraph多轮对话系统实战:Ollama私有部署+情感识别优化全解析
LangGraph多轮对话系统实战:Ollama私有部署+情感识别优化全解析 LanguageMentor 对话式训练系统架构与实现 关键词:多轮对话系统设计、场景化提示工程、情感识别优化、LangGraph 状态管理、Ollama 私有化部署 1. 对话训练系统技术架构 采用四层架构实现高扩展性的对话训练…...
