Linux中安装Docker,并使用Docker安装MySQL和Redis

news2024/7/30 0:57:23

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.conf

docker 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.coloradmin.cn/o/1795119.html

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

相关文章

12. MySQL 日志

文章目录 【 1. 日志的基本原理 】【 2. 错误日志 Error Log 】2.1 启动和设置错误日志2.2 查看错误日志2.3 删除错误日志 【 3. 二进制日志 Binary Log 】3.1 启动和设置二进制日志3.2 查看二进制日志3.3 删除二进制文件删除所有二进制日志删除小于指定编号的二进制日志删除创…

浅谈SpringBoot日志文件

文章目录 一、日志的作用二、如何在SpringBoot中使用日志2.1、在程序中得到日志对象。2.2、通过日志对象中提供的内置方法操打印日志信息2.2.1 日志级别2.2.1.1、日志级别有什么作用&#xff1f;&#xff1f;2.2.1.2、日志级别的分类2.2.1.2、在配置文件中设置日志级别[!] 三、…

数字人动作解决方案,塑造逼真动作

在品牌形象塑造、市场推广及客户服务等领域&#xff0c;企业正面临着前所未有的挑战和机遇。为满足企业的需求&#xff0c;美摄科技凭借其在人工智能和计算机视觉领域的深厚积累&#xff0c;推出了面向企业的数字人动作解决方案&#xff0c;助力企业轻松打造逼真、灵活的虚拟形…

LLM的基础模型6:注意力机制

大模型技术论文不断&#xff0c;每个月总会新增上千篇。本专栏精选论文重点解读&#xff0c;主题还是围绕着行业实践和工程量产。若在某个环节出现卡点&#xff0c;可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技&#xff08;Mamba,xLSTM,KAN&#xff09;则提…

【问题复盘】第三方接口变慢导致服务崩溃

一、事件经过 -1、一个不在公司的下午&#xff0c;接到客户投诉&#xff0c;说平台不能访问了。 0、介入调查&#xff0c;发现服务器http请求无法访问&#xff0c;https请求却可以正常访问&#xff0c;一时有些无法理解&#xff1b;&#xff08;后来发现&#xff0c;http和htt…

Java核心: 为图片生成水印

今天干了一件特别不务正业的事&#xff0c;做了一个小程序用来给图片添加水印。事情的起因是需要将自己的身份证照片分享给别人&#xff0c;手边并没有一个趁手的工具来生成图片水印。很多APP提供了水印的功能&#xff0c;但会把我的图片上传到他们的服务器&#xff0c;身份证太…

离散数学期末复习题库(含答案)

目录 1.判断题 1-1 1-2 1-3 1-4 2.选择题 2-1 2-2 2-3 3.多选题 3-1 4.填空题 4-1 4-2 4-3 4-4 4-5 5.主观题 5-1 5-2 5-3 5-4 1.判断题 1-1 ϕ⊆{ϕ} &#xff08;对&#xff09; 1-2 {a,b}∈{a,b,c,{a,b}} &#xff08;对&#xff09; 1-3 {a,b…

【Selenium+java环境配置】(超详细教程常见问题解决)

Seleniumjava环境配置 windows电脑环境搭建-chrome浏览器1. 下载chrome浏览器2. 查看chrome浏览器版本3. 下载chrome浏览器驱动4.配置系统环境变量PATH 验证环境是否搭建成功1. 创建java项目&#xff0c;添加pom文件中添加依赖2. 编写代码运行 常见问题&解决办法1.访问失败…

opencv进阶 ——(十二)基于三角剖分实现人脸对齐

三角剖分概念 三角剖分&#xff08;Triangulation&#xff09;是一种将多边形或曲面分解为一系列互不相交的三角形的技术&#xff0c;它是计算几何、计算机图形学、地理信息系统、工程和科学计算中的一个基本概念。通过三角剖分&#xff0c;复杂的形状可以被简化为基本的三角…

【蓝桥杯2025备赛】分巧克力

【蓝桥杯2025备赛】分巧克力 [蓝桥杯 2017 省 AB] 分巧克力 题目描述 儿童节那天有 K K K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。 小明一共有 N N N 块巧克力&#xff0c;其中第 i i i 块是 H i W i H_i \times W_i Hi​Wi​ 的方格组成的长方形…

达梦 执行查询语句时报[-544]:Out of sort buf space

达梦数据库有时执行SQL中有时报[-544]:Out of sort buf space, try to adjust SORT_BUF_GLOBAL_SIZE, SORT_BUF_SIZE, SORT_BLK_SIZE. 第一反应是这条语句占用排序区太大。但真实原因是前面执行的语句耗光了全局排序区&#xff0c;后面SQL任何小的排序操作都会报这个错误从而执…

YOLO系列模型 pt文件转化为ONNX导出

文章目录 啥是onnx怎么导出导出之后 啥是onnx Microsoft 和合作伙伴社区创建了 ONNX 作为表示机器学习模型的开放标准。许多框架&#xff08;包括 TensorFlow、PyTorch、scikit-learn、Keras、Chainer、MXNet 和 MATLAB&#xff09;的模型都可以导出或转换为标准 ONNX 格式。 在…

RxSwift - 实现一个MVVM架构的TableView

文章目录 RxSwift - 实现一个MVVM架构的TableView前沿MVVM架构的Tableview目录结构1、模型&#xff08;Model&#xff09;2、视图模型&#xff08;ViewModel&#xff09;3、视图&#xff08;View&#xff09; 界面效果 RxSwift - 实现一个MVVM架构的TableView 前沿 MVVM架构在…

敏捷开发:拥抱变化,持续交付价值的艺术

目录 敏捷开发&#xff1a;拥抱变化&#xff0c;持续交付价值的艺术 引言 第一部分&#xff1a;敏捷开发是什么&#xff1f; a.定义&#xff1a;敏捷开发的基本概念和核心原则 b.历史&#xff1a;敏捷宣言的诞生和敏捷开发的历史背景 c.价值观&#xff1a;敏捷宣言的12条…

python的优势有哪些?

python的优点很多&#xff0c;下面简单地列举一些&#xff1a; 简单 Python的语法非常优雅&#xff0c;甚至没有像其他语言的大括号&#xff0c;分号等特殊符号&#xff0c;代表了一种极简主义的设计思想。阅读Python程序像是在读英语。 易学 Python入手非常快&#xff0c;学习…

for深入学习

目录 练习&#xff1a; 例1&#xff1a; 求解0-100中整除3的数有哪些 例2&#xff1a; 求0-100中含数字9个个数 作业&#xff1a; 练习&#xff1a; 例1&#xff1a; 求解0-100中整除3的数有哪些 代码&#xff1a; #include<stdio.h> int main() {printf("整…

Ubuntu系统中Apache Web服务器的配置与实战

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

封装了一个仿照抖音评论轮播效果的iOS轮播视图

效果图 原理 就是我们在一个视图里面有两个子视图&#xff0c;一个是currentView, 一个是willShowView,在一次动画过程中&#xff0c;我们改变current View的frame&#xff0c;同时改变willShowView的frame&#xff0c;同时&#xff0c;需要改变currentVIew 的transform.y不然…

【数据结构】链式二叉树详解

个人主页~ 链式二叉树基本内容~ 链式二叉树详解 1、通过前序遍历的数组来构建二叉树2、二叉树的销毁3、二叉树节点个数4、二叉树叶子节点个数5、二叉树第k层节点个数6、二叉树查找7、前序遍历8、中序遍历9、后序遍历10、层序遍历与检查二叉树是否为完全二叉树Queue.hQueue.c层序…