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 allsudo yum makecache 命令后,你已经清理了YUM的缓存并重新生成了缓存。这是解决YUM相关错误的一个常见步骤,可以解决因缓存导致的一些问题。接下来,你可以根据之前遇到的问题采取不同的策略:

  1. 重新尝试安装:

清理缓存并重新生成缓存后,你可以尝试重新执行之前的安装命令:

  sudo yum install -y docker-ce docker-ce-cli containerd.io
  1. 解决依赖问题:

如果之前的错误是由于依赖问题导致的,你可能需要手动解决这些依赖。这可能包括检查模块状态、寻找特定版本的软件包或使用模块管理命令来安装所需的依赖。

  1. 使用 --nobest 选项:

如果YUM无法找到最佳候选软件包,你可以使用 --nobest 选项来安装可用的软件包,即使它们不是最佳候选:

 sudo yum install --nobest -y docker-ce docker-ce-cli containerd.io
  1. 使用 --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成功安装,你可以按照以下步骤进行后续操作:

  1. 启动Docker服务:

安装完成后,你需要启动Docker服务。可以使用以下命令:

  sudo systemctl start docker
  1. 设置Docker服务开机自启:

为了确保Docker在系统启动时自动启动,可以使用以下命令:

sudo systemctl enable docker
  1. 验证Docker安装:

验证Docker是否安装成功,可以通过运行一个测试容器来实现:

sudo docker run hello-world

这个命令会下载一个测试镜像,并运行它。如果Docker安装正确,你将看到一条消息,说明它正在容器中运行。如果不成功也没关系,可能是网络的问题

  1. 检查Docker版本:

如果需要,你可以检查Docker的版本,以确认安装了哪个版本:

sudo docker --version
  1. 非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 用户还可以将权限授予其他用户。

具体来说,这段代码执行了以下操作:

  1. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root':

- 授予 root 用户所有权限。

- ON *.* 表示这些权限适用于所有数据库和表。

- TO 'root'@'%' 表示这些权限适用于从任何 IP 地址连接的 root 用户。

- IDENTIFIED BY 'root' 设置 root 用户的密码。

  1. WITH GRANT OPTION:

- 允许 root 用户授予或撤销其他用户的权限。

  1. FLUSH PRIVILEGES;:

- 这个命令用于重新加载授权表,使权限更改立即生效。在某些情况下,如果是通过 CREATE USERGRANT 命令添加用户或授予权限,可能需要执行此命令。

执行位置:

这段代码应该在 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

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

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

相关文章

LINUX----进程替换,exec族函数

execl族函数的作用 exel族函数用于调用一个已经存在的可执行程序,将该程序的运行需要的代码区和数据区的数据覆盖原进程,这样就可以实现在一个进程中调度另一个进程. 简单实现一个小功能来看一看 mytest.c #include <stdio.h> #include <unistd.h>int main(){print…

抽象的java入门1.3.0

前言&#xff1a; 在1.2.0版本中我们介绍了public class hello {}并从中提取出两个新概 修饰符和作用域 public class hello {public static void main(String[] args) {System.out.println("Hello World");} } 正片&#xff1a; 这一期把剩余的内容刨析出来 pub…

【Redis学习笔记04】Jedis客户端(上)

Java客户端操作Redis Java生态丰富&#xff0c;自定义的客户端非常多&#xff0c;常见的有Jedis、Lettuce、以及Spring整合后的RedisTemplate&#xff0c;但是对于初学者而言&#xff0c;从Jedis开始入门学习是非常容易上手的&#xff0c;因为Jedis中的API与原生Redis命令高度…

Android Bugreport分析工具:ChkBugReport教程

安装&#xff1a; 如果下载地址过期请看原仓库地址的wiki&#xff0c;或许会有更新&#xff1a;https://github.com/sonyxperiadev/ChkBugReport/wiki 提前下载好如下文件&#xff1a; ​​​​​​http://sonyxperiadev.github.io/ChkBugReport/download/chkbugreport (Lau…

一分钟有60秒,这个有趣的原因你知道吗?

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

像素坐标系与图像坐标系

前言 在数字图像处理中&#xff0c;经常会看到使用 (x, y) 表示图像中的某个像素点。 在一些图像处理库&#xff0c;例如 Pillow 、OpenCV 、Numpy 中也会使用到坐标系处理图像的像素点。 介绍 无论是像素坐标系还是图像坐标系&#xff0c;其原理都是一样的&#xff1a; 以…

UI学习(二)

UI学习&#xff08;二&#xff09; 文章目录 UI学习&#xff08;二&#xff09;布局子视图手动布局自动布局 导航控制器导航控制器基础导航控制器的切换导航栏工具栏 分栏控制器分栏控制器协议部分的内容UITableView基础部分相关的协议函数高级协议与单元格 多界面传值 布局子视…

2024年6月9日 (周日) 叶子游戏新闻

万能嗅探: 实测 网页打开 某视频号、某音、某红薯、某站&#xff0c;可以做到无水印的视频和封面下载功能哦&#xff0c;具体玩法大家自行发挥吧。 《Funko Fusion》发布新预告 20款影视作品齐聚一堂第三人称动作游戏新作《Funko Fusion》今日发布最新实机演示。该游戏融合了整…

Linxu: Dynamic debug 简介

文章目录 1. 前言2. 什么是 Dynamic debug (dyndbg) ?3. Dynamic debug (dyndbg) 的使用3.1 开启 Dynamic debug (dyndbg) 功能3.2 使用 Dynamic debug (dyndbg) 功能 4. Dynamic debug (dyndbg) 的实现4.1 内核接口 dynamic_pr_debug() 的实现4.2 debugfs 导出控制节点 contr…

力扣hot100学习记录(十二)

94. 二叉树的中序遍历 给定一个二叉树的根节点 root&#xff0c;返回它的中序遍历。 题意 给定一个二叉树&#xff0c;返回它的中序遍历 思路 采用递归的思想&#xff0c;只要根节点不为空&#xff0c;则一直递归遍历左子树&#xff0c;然后将根节点的值存入结果&#xff0c;…

AutoCAD Mechanical机械版专业的计算机辅助设计软件安装包下载安装!

AutoCAD机械版作为一款专业的计算机辅助设计软件&#xff0c;不仅具备卓越的二维绘图功能&#xff0c;更是拥有令人瞩目的3D建模工具&#xff0c;为机械设计师们提供了前所未有的创作空间。 在AutoCAD机械版的3D建模环境中&#xff0c;用户可以借助一系列简洁明了的命令&#…

数智融通 创新发展|亚信科技携AntDB、Data OS与隐私计算产品,赋能企业高质量发展

5月21日&#xff0c;亚信科技在云端举办了一场别开生面的研讨会——“数智融通 创新发展”&#xff0c;聚焦企业数智化升级的前沿话题。资深产品经理和技术架构师们面对面深入交流&#xff0c;分享创新成果与实战案例&#xff0c;共同探索企业数智化转型的新路径。 图1&#xf…

网络安全形势与WAF技术分享

我一个朋友的网站&#xff0c;5月份时候被攻击了&#xff0c;然后他找我帮忙看看&#xff0c;我看他的网站、网上查资料&#xff0c;不看不知道&#xff0c;一看吓一跳&#xff0c;最近几年这网络安全形势真是不容乐观&#xff0c;在网上查了一下资料&#xff0c;1、中国信息通…

基础数据结构 -- 栈

1. 简介 堆栈又名栈&#xff08;stack&#xff09;&#xff0c;他是计算机科学中最基础的数据结构之一。可以算是一种受限制的线性结构&#xff0c;&#xff0c;具有后进先出&#xff08;LIFO&#xff0c; Last In First Out&#xff09;的特性。由于此特性&#xff0c;堆栈常用…

OPenCV的重要结构体Mat

一 Mat Mat是什么&#xff1f; Mat有什么好处&#xff1f; class CV_EXPORTS Mat{ public: ... int dims;//维数 int rows,cols;//行列数 uchar *data;//存储数据的指针 int *refcount;//引用计数 ...};二 Mat属性 三 Mat拷贝 1 Mat浅拷贝 Mat A Aimread(file,IMREAD_COLOR) …

http接口上传文件响应413:413 Request Entity Too Large

目录 一、场景简介二、异常展示三、原因四、解决 一、场景简介 1、服务端有经过nginx代理 2、上传文件超过5M时&#xff0c;响应码为413 3、上传文件小于5M时&#xff0c;上传正常 二、异常展示 三、原因 nginx限制了上传数据的大小 四、解决 扩大nginx上传数据的大小 步…

【详细的Kylin使用心得,什么是Kylin?】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

秋招突击——算法打卡——6/5——提高{(状态机模型)股票买卖、(单调队列优化DP)最大子序列和}——新做:{考试的最大困扰度}

文章目录 提高(状态机模型)股票买卖IV思路分析实现代码参考代码 新作考试的最大困扰度个人实现参考思路 总结 提高 (状态机模型)股票买卖IV 上一次的思路总结&#xff0c;上次写的时候忘记总结了&#xff0c;现在重新画一下图 思路分析 这道题是一个经典的状态机模型&#…

用动态IP采集数据总是掉线是为什么?该怎么解决?

动态IP可以说是做爬虫、采集数据、搜集热门商品信息中必备的代理工具&#xff0c;但在爬虫的使用中&#xff0c;总是会遇到动态IP掉线的情况&#xff0c;从而影响使用效率&#xff0c;本文将探讨动态IP代理掉线的几种常见原因&#xff0c;并提供解决方法&#xff0c;以帮助大家…

牛客网刷题 | BC119 最高分与最低分之差

目前主要分为三个专栏&#xff0c;后续还会添加&#xff1a; 专栏如下&#xff1a; C语言刷题解析 C语言系列文章 我的成长经历 感谢阅读&#xff01; 初来乍到&#xff0c;如有错误请指出&#xff0c;感谢&#xff01; 描述 输入n个成绩&#…