先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
正文
run
run命令可以创建一个容器并运行,如果创建容器的镜像不存在则会从远程镜像仓库下载运行容器的同时还能给容器发送一个命令
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
options
- -i: 以交互模式运行,通常与-t一起使用
- -t: 为容器分配一个伪终端,通常与-i一起使用
- -d: 后台模式运行容器,并返回容器id
- -p list: 指定端口映射,格式为宿主机端口:容器端口
- -P: 随机分配端口映射
- –name string: 给容器指定一个名称
- -m bytes: 限制容器可以使用的内存大小,单位可选b、k、m、g
- -v list: 把宿主机的磁盘路径挂载到容器的某个路径
- –volumes-from list: 绑定别的容器某个路径到此容器的某个路径
- -w: 指定容器的工作目录,默认是根目录
- –rm: 当容器停止运行时自动删除
- –hostname string: 指定容器的主机名
start
start命令可以启动一个或多个已经停止的容器
docker start [OPTIONS] CONTAINER [CONTAINER...]
options
- -a:将容器的标准输出或标准错误附加到终端
- -i:为容器附加一个标准输入终端
restart
restart可以对一个或多个容器进行重启。如果容器是未启动的则会启动,如果是正在运行中的,则会重启
docker restart [OPTIONS] CONTAINER [CONTAINER...]
options
- -t int:在重启之前等待几秒,默认10秒
CONTAINER:容器
stop
stop命令可以停止一个或多个正在运行的容器
kill命令也可以用来停止容器
不同的是stop命令允许容器在停止之前有一定的时间来进行额外操作,如释放链接、关闭请求等
kill命令则会直接强制杀死容器
docker stop [OPTIONS] CONTAINER [CONTAINER...]
options
- -t int:等待n秒后如果还没停止,直接杀死,默认10秒
CONTAINER:容器
kill
kill命令可以杀死一个或多个正在运行的容器
docker kill [OPTIONS] CONTAINER [CONTAINER...]
options
- -sstring: 给容器发送一个信号,信号编号和linux原生命令kill的信号编号一致,默认值9,下文列出一些常用值
-s参数信号编号常用值
1:杀死并重新加载,也可用HUP表示
9:强制杀死,也可用KILL表示,默认值
15:正常停止,也可用TERM表示
rm
rm命令可以删除一个或多个容器
如果容器正在运行,则需要通过-f参数强制删除
docker rm [OPTIONS] CONTAINER [CONTAINER...]
options
- -f:强制删除,即使容器正在运行也可以删除
- -l:删除容器之间的网络关系,而不是容器本身
- -v: 删除容器和它挂载的卷
pause
pause命令可以暂停一个或多个正在运行的容器
docker pause CONTAINER [CONTAINER...]
CONTAINER:容器
unpause
unpause命令可以对一个或多个暂停的容器取消暂停
docker unpause CONTAINER [CONTAINER...]
CONTAINER:容器
create
create命令可以创建一个容器,但不运行它,在需要的时候可以使用start命令启动
和run命令的用法几乎一致,都会创建一个容器,如果容器依赖的镜像不存在都会从远程仓库拉取
run命令创建容器后会运行容器
create命令只是创建容器,不运行
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
options
- -i: 以交互模式运行,通常与-t一起使用
- -t: 为容器分配一个伪终端,通常与-i一起使用
- -d: 后台模式运行容器,并返回容器id
- -p list: 指定端口映射,格式为宿主机端口:容器端口
- -P: 随机分配端口映射
- –name string: 给容器指定一个名称
- -m bytes: 限制容器可以使用的内存大小
- -v list: 把宿主机的磁盘路径挂载到容器的某个路径
- –volumes-from list: 绑定别的容器某个路径到此容器的某个路径
- -w: 指定容器的工作目录,默认是根目录
- –rm: 当容器停止运行时自动删除
- –hostname string: 指定容器的主机名
IMAGE:镜像
COMMAND:需要运行的命令
ARG:命令的参数
exec
exce命令可以在一个运行中的容器中执行一个命令
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
options
- -d: 命令在后台运行
- -i:保持标准输入,通常和-t一起使用
- -t: 分配一个伪终端,通常和-i一起使用
- -w string: 指定容器的路径
CONTAINER:容器
COMMAND:要执行的命令
ARG:命令的参数
ps
ps命令可以列出所有容器的列表,查看容器的基本信息。不加任何参数的情况下,默认只展示正在运行的容器
docker ps [OPTIONS]
options
- -a: 显示所有容器,默认只显示正在运行的
- -f filter: 根据条件过滤容器,过滤条件详见下文
- -n int:显示最后创建的n个容器,包含所有状态
- -l: 显示最新创建的容器,包含所有状态
- -q: 只显示容器id
- -s: 显示容器大小,默认不显示该列
- –no-trunc:显示内容不截断,默认情况下显示的容器是截断后的信息
- -f参数表示根据条件过滤搜索出来的镜像
KEY的可选值如下
id: 根据容器id过滤
name: 查看容器名称中包含给定字段的容器
exited: 根据容器退出的错误码进行过滤
status: 根据容器的状态进行过滤,状态可选值有:created、paused、exited、dead、running、restarting、removing
before: 只显示在某个容器之前创建的容器
since: 只显示在某个容器之后创建的容器
volume: 过滤绑定了某个目录的容器,只针对运行中的容器
publish: 根据宿主机端口过滤,只针对运行中的容器
expose: 根据容器端口过滤,只针对运行中的容器
inspect
inspect命令可以获取一个或多个容器或者镜像的元数据信息
元数据信息可以理解为容器或者镜像的详情,它比ps命令显示的内容要详细的多。比如说端口映射、挂载目录等,显示格式为json类型
docker inspect [OPTIONS] CONTAINER|IMAGE [CONTAINER|IMAGE...]
options
- -f string: 格式化输出结果,inspect默认显示整个文件的详情,-f参数可以指定只显示某些属性
- –s: 只对容器有效,显示容器的配置文件行数和大小,显示的结果中会多出SizeRw、SizeRootFs两个参数
- –type string: 指定要inspect的类型,container表示容器,image表示镜像,默认是容器。比如我有一个tomcat镜像,同时有一个名称为tomcat的容器,就可以用–type参数来指定要inspect是tomcat容器还是tomcat镜像
stats
stats命令可以可以监控容器的资源使用情况,如cpu使用情况、内存使用情况等。每秒刷新一次,直到使用ctrl+c退出
docker stats [OPTIONS][CONTAINER...]
options
- -a filter: 显示所有容器的资源使用情况,默认只显示正在运行的
- –format string:格式化输出结果
- –no-stream: 不间隔刷新,只显示第一次统计结果
- –no-trunc: 不截断显示信息,默认情况下有些字段只显示简略信息,如容器id
CONTAINER:容器
top
top可以查看容器的进程信息,docker exec CONTAINER ps也可以查看容器的进程。
不同的是,前者查看的是容器运行在宿主机的进程id。后者查看的是容器内的进程id
docker top CONTAINER [ps OPTIONS]
options
ps可选命令
CONTAINER:容器
rename
rename可以对容器进行重命名,在容器run时如果没有使用–name参数指定容器名称,可以使用rename进行命名
docker rename CONTAINER NEW_NAME
attach
attach可以连接到容器内,这个容器必须是正在运行的容器,不是运行状态时,会报错
当使用ctrl+c或exit等命令退出容器时,会导致容器停止运行。所以,不建议在生产环境使用该命令。生产环境可以使用exec命令进入容器
docker attach [OPTIONS] CONTAINER
options
- –sig-proxy=false boolean: 默认true,为false时可以防止容器遇到ctrl+c退出信号时停止运行
CONTAINER:容器
update
update可以对容器的配置进行更新
docker update [OPTIONS] CONTAINER [CONTAINER...]
options
- -m bytes: 指定容器的内存大小,单位可选b、k、m、g
- –memory-swap bytes:–cpu demecial:cpu资源,如1.5表示可以使用宿主机的1.5个cpu资源
- –cpuset-cpus string:容器可以使用宿主机的cpu内核编号,0-3表示4个内核都可以使用,1,3表示只能使用1和3号内核
- –restart string: 指定容器的退出的重启策略。no:不重启;on-failure:容器非正常退出时重启;on-failure:3:非正常退出时重启3次;alaways:总是重启;unless-stopped:在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
- –pids-limit int: 限制容器进程或线程的数量,默认-1表示不限制
CONTAINER:容器
logs
查看容器的日志
docker logs [OPTIONS]
options
- -f: 跟踪日志的实时输出
- –until string:查看某个时间点之前的日志,格式:2021-06-03T19:30:20Z。或使用相对时间10m,表示10分钟之前
- –since string:查看某个时间点之后的日志,格式:2021-06-03T19:30:20Z。使用相对时间10m,表示10分钟之内
- -n int: 查看最后几行日志,默认显示全部
- -t: 日志中显示时间戳
- –tail=1000 (查看容器前多少行的日志)
CONTAINER:容器
wait
wait命令可以阻塞一个或多个容器直到容器退出并打印出他们的退出代码
docker wait CONTAINER [CONTAINER...]
CONTAINER:容器
port
列出端口的映射关系
docker port CONTAINER [PRIVATE_PORT[/PROTO]]
CONTAINER:容器
PRIVATE_PORT:容器端口
PROTO:端口使用的协议
export
export命令可以将容器打包到一个文件中,它和save命令比较容易混淆
export和save的不同之处在于:export打包的是容器,save打包的是镜像
export打包的是容器当时的快照,至于容器的历史记录和元数据信息都会丢失。还有,export的文件在被import成一个镜像时,可以重新指定镜像的名称和版本号
docker export [OPTIONS] CONTAINER
options
- -o string:指定打包文件
CONTAINER:容器
import
import可以从本地文件或远程文件中导入镜像到本地仓库
如果是从文件中导入,这个文件需要是export命令导出的文件
为了做好运维面试路上的助攻手,特整理了上百道 **【运维技术栈面试题集锦】** ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,**小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。**
![](https://img-blog.csdnimg.cn/img_convert/3f137267458a4421856871cecbb157b8.png)
本份面试集锦涵盖了
* **174 道运维工程师面试题**
* **128道k8s面试题**
* **108道shell脚本面试题**
* **200道Linux面试题**
* **51道docker面试题**
* **35道Jenkis面试题**
* **78道MongoDB面试题**
* **17道ansible面试题**
* **60道dubbo面试题**
* **53道kafka面试**
* **18道mysql面试题**
* **40道nginx面试题**
* **77道redis面试题**
* **28道zookeeper**
**总计 1000+ 道面试题, 内容 又全含金量又高**
* **174道运维工程师面试题**
> 1、什么是运维?
> 2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
> 3、现在给你三百台服务器,你怎么对他们进行管理?
> 4、简述raid0 raid1raid5二种工作模式的工作原理及特点
> 5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
> 6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
> 7、Tomcat和Resin有什么区别,工作中你怎么选择?
> 8、什么是中间件?什么是jdk?
> 9、讲述一下Tomcat8005、8009、8080三个端口的含义?
> 10、什么叫CDN?
> 11、什么叫网站灰度发布?
> 12、简述DNS进行域名解析的过程?
> 13、RabbitMQ是什么东西?
> 14、讲一下Keepalived的工作原理?
> 15、讲述一下LVS三种模式的工作过程?
> 16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
> 17、如何重置mysql root密码?
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)**
![img](https://img-blog.csdnimg.cn/img_convert/26902a642d389a0bfcbef596b5458369.jpeg)
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
作中你怎么选择?
> 7、Tomcat和Resin有什么区别,工作中你怎么选择?
> 8、什么是中间件?什么是jdk?
> 9、讲述一下Tomcat8005、8009、8080三个端口的含义?
> 10、什么叫CDN?
> 11、什么叫网站灰度发布?
> 12、简述DNS进行域名解析的过程?
> 13、RabbitMQ是什么东西?
> 14、讲一下Keepalived的工作原理?
> 15、讲述一下LVS三种模式的工作过程?
> 16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
> 17、如何重置mysql root密码?
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)**
[外链图片转存中...(img-DvPmuKne-1713318590388)]
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**