[Docker学习笔记]Docker的原理Docker常见命令
文章目录
- 什么是Docker
- Docker的优势
- Docker的原理
- Docker 的安装
- Docker 的 `namespaces`
- Docker的常见命令
- `docker version`:查看版本信息
- `docker info `查看docker详细信息
- 我们关注的信息
- `docker search`:镜像搜索
- `docker pull`:镜像拉取到本地
- `docker push`:推送本地镜像到镜像仓库
- `docker tag`:为镜像加(改)标签
- `docker login`:登录镜像仓库
- `docker run`:启动一个镜像(容器)
- 前台启动
- 后台启动
- 【补】为什么我们上面两个容器,最后都会退出?
- 【补】那我们怎么解决这个问题呢?
- 1.既然我们直接不管他不行,那就先这个bash终端放到后台瞧瞧
- 2.我们再来瞧瞧,是不是哪里理解错了
- 我们再启动一个nginx容器试试
- 问题来了,我们启用nginx容器的目的不是要做个网站吗,我们只知道容器内部用的是80端口,那我们在宿主机怎么访问呢?
- 总结一下
- `docker ps`:查看容器信息
- `docker logs`:查看容器日志
- 【补】除了用docker logs命令,我们还可以直接进入容器的上下文目录查看日志
- `docker exec`:进入(正在运行的)指定容器
- `docker cp`:文件的拷贝
- 将本地文件(宿主机文件)拷入容器中
- 将容器中的文件拷贝到宿主机中
- `docker rmi`:删除镜像
- `docker rm`:删除容器
- `docker stop`:停止容器
- `docker start`:重启容器
- `docker history`:查看镜像更改记录
- `docker commit`:提交容器状态为镜像到本地仓库
- 我们再看看这个镜像的细节
- 用这个镜像起一个容器
- 在另一个窗口看看
- 我们回到这个终端,退出容器试试
- `docker build`:通过Dockerfile 构建镜像
什么是Docker
百度百科
Docker的优势
-
跨平台部署:Docker 可以在不同的操作系统和硬件平台上运行,可以轻松地将应用程序在开发、测试和生产环境中进行一致性的部署。
-
资源利用率和扩展性:Docker 可以通过容器的方式将应用程序与其依赖的运行时环境和依赖项隔离,从而提高资源的利用率并减少资源的消耗。此外,Docker 还支持快速水平扩展,使应用程序能够更好地适应变化的负载。
-
快速交付和部署:通过 Docker 容器化,可以实现快速的应用程序交付和部署。将应用程序和其依赖项打包到容器中,可以确保运行环境的一致性,并且在不同的环境中轻松地部署和迁移应用程序。
-
简化开发环境配置:Docker 可以帮助开发人员更轻松地配置开发环境。通过使用容器,可以将应用程序及其依赖项打包到一个镜像中,并在开发环境中进行部署,从而减少了由于开发环境配置不一致导致的问题。
-
提高应用程序的安全性:Docker 的容器隔离技术可以将应用程序与底层主机隔离开来,从而提高应用程序的安全性。每个容器都有自己的文件系统、进程空间和网络接口,使得应用程序之间互不干扰。
Docker的原理
我们现在可以知道Docker实际上就是一个应用程序,只不过自己带上了所需要的依赖。在考虑Docker的原理之前,我们先来看看在部署应用的方式是怎样一步步升级的
以部署一个Mysql程序为例
-
物理机
-
首先,我们要拥有一个操作系统(通常是Linux操作系统)
-
安装依赖环境(gcc、make、libncurses5-dev等编译工具)
-
安装应用程序
此时如果我们要增加一台新的物理机来处理Mysql并发请求,就需要再进行一次环境的重复配置
-
-
虚拟化(KVM或其他技术)
- 将一个物理机虚拟成多个机器
- 可以将依赖环境打包成一个模板(VMware Workstation的克隆功能就是这样实现的)
-
容器化
-
以镜像为基础
- 依赖环境的镜像
- Java程序——Java的基础镜像
- Php程序——Php的基础镜像
- Nginx程序——Linux操作系统基础镜像
- 根据基础镜像——放入自己的代码(或包)——>生成程序镜像
- 依赖环境的镜像
-
镜像按层存储

这样的方式可以让我们使用同于基础层来实现不同的功能,如上图,下面两层我们就可以直接套用模板了
-
启动时间快(秒级启动)
由于与主机共享内核,不需要做操作系统的引导
-
可移植性好
将运行某个应用所需要的环境全部打包到同一个容器中,不需要考虑兼容问题

如上图
- Docker将用户程序与所需要调用的系统函数库一起打包
- Docker运行到不同操作系统时,直接基于打包的函数库,借助于操作系统的Linux内核来运行
-
Docker 的安装
参考官方文档
Docker 的 namespaces
Docker 使用 Linux 内核的 namespaces 功能来实现容器的隔离。namespaces 是 Linux 内核提供的一种机制,用于隔离系统资源,使得运行在不同 namespaces 中的进程拥有独立的视图和环境,而不会相互干扰。Docker 利用这一机制来创建轻量级的虚拟化环境,即容器。
-
进程命名空间(PID Namespace)
进程命名空间允许容器中的进程拥有独立的进程树。这意味着容器内的进程ID(PID)与宿主机或其他容器中的进程ID是隔离的。每个容器都有自己的 PID 1,即容器内的第一个进程。
-
网络命名空间(NET Namespace)
网络命名空间为每个容器提供独立的网络堆栈。容器拥有自己的网络接口、IP地址、路由表、防火墙规则等。这允许容器之间以及容器与宿主机之间进行隔离的网络通信。
-
挂载命名空间(MNT Namespace)
挂载命名空间为每个容器提供独立的文件系统视图。容器可以有自己的
/根目录,以及独立的挂载点,使得容器可以有自己独特的文件系统结构,而不会影响到宿主机或其他容器。 -
用户命名空间(USER Namespace)
用户命名空间允许容器内的用户和组ID与宿主机上的用户和组ID不同。这意味着容器内的用户可以映射到宿主机上的不同用户,从而提供额外的安全隔离。
-
UTS命名空间
UTS命名空间允许容器拥有独立的主机名和NIS域名。这使得容器可以拥有自己的标识,而不需要与宿主机或其他容器共享。
-
IPC命名空间
IPC命名空间(Inter-process communication namespace)为容器提供独立的进程间通信资源,如消息队列、信号量和共享内存。这确保了容器之间的进程通信是隔离的。
通过这些 namespaces,Docker 实现了容器的隔离,使得每个容器都像是在独立的环境中运行,而实际上它们共享宿主机的内核。这种隔离机制是容器轻量级和高效的关键
Docker的常见命令
docker version:查看版本信息

- Docker版本
Version: 24.0.7 - 宿主机架构
OS/Arch:linux/amd64 - 其他一些关键组件的版本
docker info 查看docker详细信息


我们关注的信息
-
Client Debug Mode:false #客户端的debug模式,按需开启 -
Server:Containers: 1 # 已构建1个容器Running: 0 # 正在运行的容器数量Paused: 0 Stopped: 1Images: 3 # 服务器保存的镜像数量docker ps -a
docker images
-
Storage Driver: overlay2存储驱动为overlay2(官方默认、性能好)常见驱动 aufs、overlay、brtfs
-
Logging Driver: json-file:Docker 日志存储类型#json-file存储在本地的Docker根目录
-
Docker Root Dir: /var/lib/docker:Docker根目录(可以更改)#最好使用一个单独的磁盘挂载该目录
-
Runtimes: runc io.containerd.runc.v2:容器创建、销毁以及运行都是调用Runtime来执行 -
Live Restore Enabled: false:开启后自动重启容器
docker search:镜像搜索
带officials为官方镜像
docker pull:镜像拉取到本地
-
本地有同一镜像,则不会重复拉取
-
docker pull xxx.com/nginx:latest#从xxx.com的镜像仓库拉取标签为latest的nginx镜像;不加URL则表示从官网拉取
-
不加标签默认拉取最新版本
docker push:推送本地镜像到镜像仓库
docker push xxx.com/my-namespace/my-nginx:latest
docker tag:为镜像加(改)标签
dockertag my-nginx:latest xx.com/my-namespace/my-nginx:latest
docker login:登录镜像仓库
-
不加仓库地址默认登陆官方镜像仓库
docker login registry.cn-hangzhou.aliyuncs.com#登陆阿里云镜像站
docker run:启动一个镜像(容器)
前台启动
docker run -ti centos:7 bash
# -ti:生成一个终端
# bash:指定终端为bash

后台启动
docker run -d centos:7 bash
【补】为什么我们上面两个容器,最后都会退出?
docker ps -a

我们先来看看他们创建的命令都是docker run xxx bash,最后都会生成一个终端
我们再到百度上搜搜看什么叫终端

咦,这一切不都说得通了,我们在前台启动的centos7容器是因为退出了容器bash前台终端,这个容器存在的意义也就没了,而后台启动的第二个容器,压根就没前台终端生成。
【补】那我们怎么解决这个问题呢?
1.既然我们直接不管他不行,那就先这个bash终端放到后台瞧瞧
docker run -d centos:7 bash&

表面上看是行了,我们再打开一个窗口看看现在这个容器在不在运行

结果还是不行,out
2.我们再来瞧瞧,是不是哪里理解错了

哦,那我们把这个bash换成其他的不需要前台输入的的命令试试
docker run -d centos:7 tail -f /dev/null
# 这里我们把这个容器当成生产队的驴来用了,持续读取一个空文件的尾部
看看结果,up!!!

docker run -d centos:7 sleep infinity
# 这里用sleep infinity 命令让容器宝宝独自等待~

嗨呀,小case啦,轻轻松松^_*
我们再启动一个nginx容器试试
docker run -d --name nginx_test nginx:test
# --name 指定容器名 后面跟依赖的镜像

问题来了,我们启用nginx容器的目的不是要做个网站吗,我们只知道容器内部用的是80端口,那我们在宿主机怎么访问呢?
-
我们先把他关了
docker stop nginx_test -
重新启动容器并添加端口映射
docker run -d --name nginx_test -p 8080:80 nginx:test
这是肿么肥四,重名了?我们来看看
docker ps -a
不还是你吗?你小子不听话就把你删了
docker rm nginx_test接下来把所有的爱给他同父同母的同名兄弟
docker run -d --name nginx_test -p 8080:80 nginx:test # -p [宿主机端口:容器端口] 添加端口映射
-
再用宿主机的8080端口访问一下

这不又好了吗,easy啊~_-
总结一下
bash可以换成任意命令
- 如果是需要前台输入的命令,你得提供一个前台伪终端,提供内容给他
- 后台可以直接运行的命令就无所谓了
docker ps:查看容器信息
-
docker ps:查看当前正在运行的容器docker ps
-
docker ps -a:查看所有已经创建的容器(包括退出)docker ps -a
-
docker ps -q:查看所有正在运行的容器ID(个人认为用处不大,不如docker ps) -
docker ps -aq:查看容器的ID(同理用处不大,不如docker ps -a)
docker logs:查看容器日志
docker logs [容器名/容器ID]
docker logs -f [容器名] # 跟随模式,持续输出,动态查看,用户手动停止
我们来查看刚刚创建的nginx容器日志
docker logs nginx_test

【补】除了用docker logs命令,我们还可以直接进入容器的上下文目录查看日志
sudo su # 进入容器日志目录需要管理员权限
cd /var/lib/docker/containers/

这几个就是目前存在的容器

我们要看nginx容器的日志
cd 969d3c0012a74aa61284fe89be08fcfc17c83ac83674bed422e7b2fc086eb782/
# 不用敲全,用tab补全就行了
ls

tail 969d3c0012a74aa61284fe89be08fcfc17c83ac83674bed422e7b2fc086eb782-json.log# 结果跟docker logs nginx_test 结果一样一样的

docker exec:进入(正在运行的)指定容器
docker exec -it nginx_test bash
ls #查看容器内的文件
uname -a #查看容器内部运行的操作系统
exit #退出容器

#进入容器后注意主机名和用户的变化
docker cp:文件的拷贝
docker cp [宿主机文件] [容器名(或者id):容器内部文件夹(或文件)]
docker cp [容器名(或者id):容器内部文件夹(或文件)]
将本地文件(宿主机文件)拷入容器中
在执行操作前我们先看看nginx的网页存放的位置
find . -name "html"
#莫名其妙的权限报错这会儿咱们就不管了

echo "hello nginx" > index.html&&cat inidex.html

docker cp index.html nginx_test:/usr/share/nginx/html/

这时我们再来看看nginx的主页什么样了

将容器中的文件拷贝到宿主机中
#先在根目录下执行ls命令并将结果重定向到test.txt中
ls >>test.txt

#在宿主机执行cp命令,并显示文件内容
docker cp nginx_test:./test.txt ls_test.txt&&cat ls_test.txt

docker rmi:删除镜像
我们先看看机子上现有哪些镜像
docker images

居然有两个不知道什么内容的镜像,那把他俩都删了吧,红尘作伴,潇潇洒洒,说干就干
docker rmi 2a36393edaf1 605c77e624dd
再看看,已经不在了

docker rm:删除容器
我们先来看看有哪些容器不乖了

好嘞,就决定是你了,你都退出了,那我就对你不客气咯
docker rm [容器名(或容器ID)]
docker rm inspiring_shannon

害群之马没啦,一片祥和
docker stop:停止容器
docker stop [容器名/容器ID]
docker ps
docker stop nginx_test
docker ps

docker start:重启容器
docker stop [容器名/容器ID]
docker ps
docker start nginx_test
docker ps

docker history:查看镜像更改记录
我们先看看有哪些镜像
docker images

docker history centos:latest
# 我们选择占用空间最大的centos:latest来看

docker commit:提交容器状态为镜像到本地仓库
docker commit <参数> <容器id> <仓库>[:标签]>
# -a, --author:指定作者信息,格式为 name <email>。
# -c, --change:应用 Dockerfile 指令到创建的镜像。
# -m, --message:提交信息,描述这次提交的更改。
# --pause:是否在提交时暂停容器,默认为 true
docker commit -a "yy" -m "my_nginx_test_images1" nginx_test my_nginx:v1.0
# -a 参数一般是告诉别人作者的信息,我在这只是本地使用提交,其实加不加无所谓

我们再看看这个镜像的细节
docker history my_nginx

显示了提交时的信息
用这个镜像起一个容器
docker run -it --rm --name nginx_test1 mynginx:v1.0 bash

在另一个窗口看看
docker ps

成功了
我们回到这个终端,退出容器试试
exit
docker ps
咦,nginx_test1怎么没了,是不是退出啦?

我们再看看
docker ps -a

还是没有啊,燕子,没有你我怎么活呀
这时候一旁看戏的nginx_test就要说了:你这家伙,创建人家的时候是不是干了什么事情
我们往上看看命令

哦,原来罪魁祸首是这个--rm参数,他让容器运行结束后自动删除了(这样做的好处是,减少exit状态容器的出现)
docker build:通过Dockerfile 构建镜像
docker build -t <镜像名称[:标签]> <上下文目录(dockerfile所在目录)>
# 标签缺省则默认为latest
我们现在已经有一个dockerfile文件了,存放在./Dockerfile目录下
docker build -t nginx_test_dockerfile ./Dockerfile_task/

看看有咩有多一个叫nginx_test_dockerfile的镜像
docker images

相关文章:
[Docker学习笔记]Docker的原理Docker常见命令
文章目录 什么是DockerDocker的优势Docker的原理Docker 的安装Docker 的 namespaces Docker的常见命令docker version:查看版本信息docker info 查看docker详细信息我们关注的信息 docker search:镜像搜索docker pull:镜像拉取到本地docker push:推送本地镜像到镜像仓库docker …...
【ESP 保姆级教程】小课设篇 —— 案例:20240507_esp01s+UNO的智能浇水系统
忘记过去,超越自己 ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2024-09-30 ❤️❤️ 本篇更新记录 2023-09-30 ❤️🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言📝🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请…...
如何设置MySQL分布式架构主键ID,为什么不能使用自增ID或者UUID做主键?
MySQL分布式架构主键ID的设置方法 雪花算法(Snowflake) 原理:雪花算法是一种生成分布式唯一ID的算法。它由64位二进制数组成,结构如下:1位符号位(固定为0) 41位时间戳(表示从一个固…...
服务器虚拟化详解
服务器虚拟化详解 服务器虚拟化是一种将物理服务器资源转化为虚拟服务器资源的技术,它允许在一台物理服务器上运行多个虚拟服务器,每个虚拟服务器都拥有独立的操作系统、应用程序和资源配置。这种技术极大地提高了服务器的利用率、灵活性和可扩展性&…...
医疗陪诊APP开发实战:从互联网医院系统源码开始
本文将从互联网医院系统源码出发,深入探讨医疗陪诊APP的开发实战。 一、从互联网医院系统源码入手 开发医疗陪诊APP的基础在于互联网医院系统的源码。互联网医院系统通常包括以下几个模块: 1.用户管理:用户注册、登录、信息管理等功能。 …...
jenkins 构建报错ERROR: Error fetching remote repo ‘origin‘
问题描述 修改项目的仓库地址后,使用jenkins构建报错 Running as SYSTEM Building in workspace /var/jenkins_home/workspace/【测试】客户端/client-fonchain-main The recommended git tool is: NONE using credential 680a5841-cfa5-4d8a-bb38-977f796c26dd&g…...
初识C#(三)- 数组
我有17栋楼,在不同地域,都是不同价格租出去给不同的人~ 文章目录 前言一、数组1.1 我有17栋楼 - 数组的声明1.2 包租公&包租婆 - 数组赋值1.3 每个月都要交租的苦逼租客 - 数组的使用 二、字符串2.1 字符串的使用方法 总结 前言 本篇笔记重点描述C#…...
黑马智数Day3
渲染基础Table列表 封装接口: export function getCardListAPI(params) {return request({url: /parking/card/list,params}) } 具体实现: import { getCardListAPI } from /apis/cardexport default {data() {return {// 请求参数params: {page: 1,pa…...
【Java】再一次踩了整数溢出的坑
【Java】再一次踩了整数溢出的坑 一、起因原题示例 1示例 2提示 我的代码提交结果 二、思考修改后的代码如下 三、知识点1. int m l ((r - l) / 2)解释 2. if (m < x / m)解释 四、结尾 一、起因 我在做【力扣】69.x 的平方根 一题的时候,明明觉得逻辑没问题&…...
Windows开发工具使用技巧大揭秘:让编码效率翻倍的秘籍!
【ACM出版|厦大主办|EI稳定检索】第五届计算机科学与管理科技国际学术会议(ICCSMT 2024)_艾思科蓝_学术一站式服务平台 更多学术会议请看:学术会议-学术交流征稿-学术会议在线-艾思科蓝 目录 引言 1. 快捷键大全:加速你的编码…...
CSS外边距
元素的外边距(margin)是围绕在元素边框以外(不包括边框)的空白区域,这片区域不受 background 属性的影响,始终是透明的。 为元素设置外边距 默认情况下如果不设置外边距属性,HTML 元素就是不会…...
C++ set,multiset与map,multimap的基本使用
1. 序列式容器和关联式容器 string、vector、list、deque、array、forward_list等STL容器统称为序列式容器,因为逻辑结构为线性序列的数据结构,两个位置存储的值之间一般没有紧密的关联关系,比如交换一下,他依旧是序列式容器。顺…...
评估潜力无限:解读自闭症患者的工作能力评估
在星贝育园这片充满爱与希望的土地上,我们不仅见证了无数自闭症儿童在康复训练中的点滴进步,更深刻理解了他们内在潜力的无限可能。自闭症,这一复杂的神经发育障碍,常常让外界对其患者的工作能力产生误解和偏见。然而,…...
js 实现视频封面截图
今天给大家分享一下,如何实现视频封面截取功能,这里主要用到了 HTML5 的 canvas 相关的 api 和 js 相关的一些知识,话不多说,直接上代码: <template><div><div class"margin-tb-sm"><…...
Hadoop FileSystem Shell 常用操作命令
提示:本文章只总结一下常用的哈,详细的命令大家可以移步官方的文档(链接贴在下面了哈🤣)— HDFS官方命令手册链接。 目录 1. cat 命令:查看 HDFS 文件内容2. put 命令:将本地文件上传到 HDFS3.…...
uniapp EChars图表
1. uniapp EChars图表 (1)Apache ECharts 一个基于 JavaScript 的开源可视化图表库 https://echarts.apache.org/examples/zh/index.html (1)官网图例 (2)个人实现图例 1.1. 下载echart 1.1.1. 下…...
最新版ingress-nginx-controller安装 使用host主机模式
最新版ingress-nginx-controller安装 使用host主机模式 文章目录 最新版ingress-nginx-controller安装 使用host主机模式单节点安装方式多节点高可用安装方式 官方参考链接: https://github.com/kubernetes/ingress-nginx/ https://kubernetes.github.io/ingress-ng…...
实习问题(配置文件获取参数)
Java中用SpringBoot框架,当我们要获取配置文件yml里的参数时,用Value注解获取 如果配置文件中没有srvSealUploadPath这个参数的话,可以用Value("${srvSealUploadPath:data/idoc/temp}"),这个的意思是,如果配…...
C#测试调用Ghostscript.NET浏览PDF文件
Ghostscript.NET是针对Ghostscript的C#封装库,支持解析PostScript语言、操作PDF文件等。使用Ghostscript.NET的GhostscriptViewer 模块可以以图片形式查看PDF文档。本文学习并测试调用Ghostscript.NET模块打开及浏览PDF文件的基本用法。 Ghostscript.NET目前主要…...
MySQL本地安装步骤
下载MySQL ZIP压缩包 访问MySQL官网(https://www.mysql.com/)或下载页面(https://dev.mysql.com/downloads/mysql/)。 在下载页面选择“MySQL Community Server”作为下载目标。 根据你的操作系统(Windows)…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

