如何清理批量后台停止的容器?

stat (查看端口状态)的解析流程
1.查找本地/etc/hosts文件,是否有强制解析
2.查找本地dns缓存
4.在dns服务器中找到解析记录后,在本地dns中添加缓存
5.完成一次dns解析

43.出于安全角度,简述如何安装启动redis服务端?

44.如何保证本地测试环境和线上开发环境一致性?思路?

Redis是一个开源的基于内存的,key-value数据结构的缓存数据库,支持数据持久化,m-s复制,常用数据类型有string set hash list,
最佳应用场景:适用于数据变化快且数据库大小可遇见(适合内存容量)的应用程序。
例如:股票价格、数据分析、实时数据搜集、实时通讯。
Redis只能使用单线程,性能受限于CPU性能,故单实例CPU最高才可能达到5-6wQPS每秒(取决于数据结构,数据大小以及服务器硬件性能,日常环境中QPS高峰大约在1-2w左右)
Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key、value的字节大小以及服务器硬件性能,日常环境中QPS高峰大约在4-6w左右)。适用于最大程度扛量。
只支持简单的key/value数据结构,不像Redis可以支持丰富的数据类型。
无法进行持久化,数据不能备份,只能用于缓存使用,且重启后数据全部丢失。
更高的写负载,MongoDB拥有更高的插入速度,支持高可用性,支持索引高速查询,占用磁盘空间较大,支持持久化

47.redis哨兵是什么?作用是
redis哨兵是监控redis主从服务,不存储数据的,作用是用于自动切换reidis服务主从关系,即当主库服务停止后,会将其中一个从库变为主库

即使使用哨兵,redis每个实例也是全量数据存储,每个redis存储的内容都是完整的数据。
为了最大化利用内存,可以采用cluster群集,就是分布式存储。即每台redis存储不同的内容。
slot的算法,实际上是解决了redis-cluster架构下,有多个master节点的时候,数据如何分布到这些节点上去。key是可用key,如果有{}则取{}内的作为可用key,否则整个可以是可用key。群集至少需要3主3从,且每个实例使用不同的配置文件。

49.什么是静态资源,什么是动态资源?
动态资源一般指的是数据,即后端给前端提供的数据

ln -s 目标文件名 软连接名

52.给如下代码添加注释

    2)安装依赖包

    3)修改项目中的api.js 中的端口

    2) 创建虚拟环境

    3)安装django 和依赖包

    2)80端口访问前端vue

58.使用rm -i 系统会提示什么信息? b

Redis会定期保存数据快照至一个rdb文件中,并在启动时自动加载rdb文件,恢复之前保存的数据,通过save指令触发持久化,redis单独开启一个子进程进行数据持久化。
rdb缺点,定期执行,可能会丢失数据,并且数据量特别大时候,如果服务器cpu性能较低,rdb开启子进程持久化性能影响很大,影响redis对外提供服务的能力。

Redis会把每一个写请求都记录在一个日志文件里。在Redis重启时,会把AOF文件中记录的所有写操作顺序执行一遍,确保数据恢复到最新。
随着AOF不断地记录写操作日志,因为所有的操作都会记录,所以必定会出现一些无用的日志。大量无用的日志会让AOF文件过大,也会让数据恢复的时间过长。
优先:数据安全,不怕数据损坏,如断电灯问题,还可以用redis-check-aof修复数据,AOF文件人为可读
缺点:占磁盘,性能损耗高,数据恢复慢
如果既配置了RDB,又配置了AOF,则在进行数据持久化的时候,都会进行,但是在根据文件恢复数据的时候,以AOF文件为准,RDB文件作废

66.nginx的负载均衡调度算法有几种?是什么?
轮询     按时间顺序逐一分配到不同的后端服务器(默认)
weight    加权轮询,weight值越大,分配到的访问几率越高
ip_hash    每个请求按访问IP的hash结果分配,这样来自同一IP的固定访问一个后端服务器
url_hash   按照访问URL的hash结果来分配请求,是每个URL定向到同一个后端服务器
least_conn 最少链接数,那个机器链接数少就分发

72.容器退出后,通过docker ps查看不到,数据会丢吗?
不会丢,因为容器停止了,并没有被删除 docker ps -a可以看到

WSGI是Web服务器网关接口。它是一个协议,描述了Web服务器如何与Web应用程序通信。

77.消息队列的作用?
2)数据冗余,例如rabbitmq的ack机制,消息确认机制
4)可恢复性,就算系统中部分组件挂掉,消息在队列也不丢失,待组件恢复后继续处理消息。
5)异步通信,如发红包,短信等流程丢入队列,可以优先级很低的去处理。

78.服务器被攻击,吃光了所有的CPU资源,怎么办?禁止重装系统

1找到吃资源的进程信息

78.在centos7.2中如何查看程序执行所消耗的cpu,内存等硬件信息

SaltStack(或Salt)是一个基于命令行的工具,可以设置一个主客户端模式还是非集中模式。 Salt基于Python,提供了一种推送方法和一种与客户端通信的SSH方法。
Salt允许对客户端和配置模板进行分组,以简化对环境的控制。

Ansible是用于在可重复的方式将应用程序部署到远程节点和配置服务器的开源工具。
它为您提供了使用推送模型设置推送多层应用程序和应用程序工件的通用框架,

Chef是配置管理的开源工具,专注于开发方为它的用户群。

Fabric是在应用程序部署精简SSH一个基于Python的工具。 它主要用于跨多个远程系统运行任务,但也可以使用插件扩展以提供更高级的功能。
Fabric将配置您的系统,执行系统/服务器管理,并自动部署您的应用程序。

Puppet是在全面配置管理空间长期工具之一。 它是一个开源工具,但考虑到它已经存在多久,它已经被良好的审查和部署在一些最大和最苛刻的环境中。 Puppet基于Ruby,但是使用更接近JSON的定制的域脚本语言(DSL)来在其中工作。 它作为主客户端设置运行,并使用模型驱动方法。
Puppet代码设计作为依赖关系列表,这可以使事情更容易或更混乱,这取决于您的设置。

wsgi是一种通用的接口标准或者接口协议,实现了python web程序与服务器之间交互的通用性。

uwsgi协议是一个'uWSGI服务器'自有的协议,它用于定义传输信息的类型,

1 启动、重启、关闭包括但不限于python进程。
2 查看进程的运行状态。
3 批量维护多个进程。

PV访问量(Page View),即页面访问量,每打开一次页面PV计数+1,刷新页面也是。
UV访问数(Unique Visitor)指独立访客访问数,一台电脑终端为一个访客。

每秒查询率,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准

86.什么是静态资源?什么是动态资源?
静态资源指定的是网站的CSS/JS/HTML文件
动态资源一般指的是数据,即后端给前端提供的数据

当程序系统发现某些任务耗费时间且优先级较低,迟点完成也不影响整个任务,就把这个任务丢给消息队列。

镜像 容器 仓库 三大生命周期

容器可以被创建、启动、停止、删除、暂停

ADD除了有添加的作用,还有解压缩的作用
copy就是把本地的文件,拷贝到容器空间内,没有解压作用
ENV #环境变量,尽可能使用ENV增加可维护性

95.如何退出一个交互式的容器终端,而不终止它?

96.容器如何端口映射?数据卷映射?

Docker 端口映射即映射容器内应用的服务端口到本机宿主机器。

利用list 数据类型的特性 ,它是一个双向队列
可以用 lpush 往左边插入数据
再利用 rpop从右边取出数据

98.redis可以生产一次,消费多次吗?

100.rabbitmq如何实现队列,消息持久化?

# 声明一个队列(创建一个队列)
# 默认此队列不支持持久化,如果服务挂掉,数据丢失
# durable=True 开启持久化,必须新开启一个队列,原本的队列已经不支持持久化了

2、返回一个ack,进程收到消息并处理完任务后,发给rabbitmq一个ack表示任务已经完成,可以删除该任务

3、镜像队列:将queue镜像到cluster中其他的节点之上。
在该实现下,如果集群中的一个节点失效了,queue能自动地切换到镜像中的另一个节点以保证服务的可用性

1:git init—————————初始化
2:git add .————————-从工作区,添加到版本库
5:git log —————————查看版本库的日志
6:git reflog————————查看所有日志
9:git stash————————-将第一个记录从“某个地方”重新拿到工作区(可能有冲突)
git stash list——————————————————————————查看“某个地方”存储的所有记录
git stash clear—————————————————————————-清空“某个地方”
git stash pop——————————————————————————-将第一个记录从“某个地方”重新拿到工作区(可能有冲突)
git stash apply —————————————————————————编号,将指定编号记录从“某个地方”重新拿到工作区(可能有冲突)
git stash drop —————————————————————————编号 ,删除指定编号的记录
默认是master分支——————————master
开发的分支—————————————dev
做代码review————————————reciew
程序员自己的分支——————————…….
1:每个员工创建自己的分支
2:将自己的代码提交的到自己的分支—————xxx,sss,wwww…….
3:由组长或老大做代码的review,——————-代码提交的review分支
熟悉 Linux常用操作。
1:man rm———————————————查看命令帮助
2:mkdir———————————————-创建目录
3:touch———————————————-创建文件
4:cd—————————————————切换。
5:ls—————————————————查看目录
6:ls -lh————————————————查看目录详细
7:pwd————————————————-查看当前目录
8:vim————————————————-添加内容
9:echo————————————————追加内容
10:cat————————————————查看文件内容
11:mv————————————————-移动
12:cp————————————————-拷贝
13:mv————————————————重命名
15:find———————————————-搜索
16:rm————————————————-删除数据
17:ping———————————————-查看能不能上网
19:tar cf ————————————————打压缩
20:tar xf——————————————-解压缩
1:Tab键—————————————-自动补全命令或路劲。
2:ctrl+l—————————————清屏
3: ctrl+c—————————————取消当前操作
复制当前行 ——————————yy
粘贴—————————————-p
剪切—————————————-dd
撤销—————————————-u
恢复—————————————-ctrl + r

69.如何给与一个脚本可执行权限

72.容器退出后,通过docker ps查看不到,数据会丢吗?

不会 不会丢,因为容器停止了,并没有被删除 docker ps -a可以看到

73.如何批量清理后台停止的容器

74.如何查看容器日志?

75.服务器被攻击,吃光了所有的CPU资源,怎么办?禁止重装系统

5. 强制删除 病毒文件

WSGI是Web服务器网关接口。它是一个协议,描述了Web服务器如何与Web应用程序通信。

78.在centos7.2中如何查看程序执行所消耗的cpu,内存等硬件信息

79.unix查询环境变量的命令是

80.查询脚本定时任务的命令是

86.解释什么是静态资源?动态资源?

“老男孩”:[{“老师”:[“太白”,”女神”,”吴老板”]},{“学生”:[“20期佳增同学”]}]

“老男孩”:[{“老师”:[“太白”,”女神”,”吴老板”]},{“学生”:[“20期佳增同学”]}] 2)数据冗余,例如rabbitmq的ack机制,消息确认机制 4)可恢复性,就算系统中部分组件挂掉,消息在队列也不丢失,待组件恢复后继续处理消息。 5)异步通信,如发红包,短信等流程丢入队列,可以优先级很低的去处理。
  • LABEL:定义一些参数
  • COPY:将本地文件复制到容器内
copy是 拷贝宿主机的文件 到容器中,仅此而已
add是 拷贝宿主机的文件 到容器中,并且有解压缩的作用

94.交互式进入正在运行的docker容器中

95.如何退出一个交互式的容器终端,而不终止它?

exit #会回退到宿主机系统中

96.容器如何端口映射?数据卷映射?

98.redis可以生产一次,消费多次吗?

# durable=True 开启持久化,必须新开启一个队列,原本的队列已经不支持持久化了
 



100.rabbitmq如何实现队列,消息持久化?








利用list数据类型的特性 ,双向队列
可以用 lpush 往左边插入数据,再利用rpop从右边取出数据


git常用命令
1:git init—————————初始化
2:git add .————————-从工作区,添加到版本库
3:git commit -m”xxx”————从暂存区,添加到分支
4:git status————————查看状态
5:git log —————————查看版本库的日志
6:git reflog————————查看所有日志
7:git reset —head 版本号—-切换
8:git stash————————-保存
9:git stash————————-将第一个记录从“某个地方”重新拿到工作区(可能有冲突)
git stash list——————————————————————————查看“某个地方”存储的所有记录
git stash clear—————————————————————————-清空“某个地方”
git stash pop——————————————————————————-将第一个记录从“某个地方”重新拿到工作区(可能有冲突)
git stash apply —————————————————————————编号,将指定编号记录从“某个地方”重新拿到工作区(可能有冲突)
git stash drop —————————————————————————编号 ,删除指定编号的记录
10:git branch dev—————创建分支
11:git branch -d dev———-删除分支
12:git checkout dev————切换分支
13:git merge dev—————-合并分支
14:git branch———————查看所有分支
15:git clone https:xxx——-克隆
16:git add origin https:xxx-起个别名
17:git push origin dev ——添加到dev分支
18:git pull origin master—拉代码
19:git fetch origin master-去仓库获取
20:git merge origin/master-和网上下的master分支合并
协同开发:
默认是master分支——————————master
开发的分支—————————————dev
做代码review————————————reciew
程序员自己的分支——————————…….
1:每个员工创建自己的分支
2:将自己的代码提交的到自己的分支—————xxx,sss,wwww…….
3:由组长或老大做代码的review,——————-代码提交的review分支
4:再提交到dev.
5: 再合并到master分支


熟悉 Linux常用操作。
1:man rm———————————————查看命令帮助
2:mkdir———————————————-创建目录
3:touch———————————————-创建文件
4:cd—————————————————切换。
5:ls—————————————————查看目录
6:ls -lh————————————————查看目录详细
7:pwd————————————————-查看当前目录
8:vim————————————————-添加内容
9:echo————————————————追加内容
10:cat————————————————查看文件内容
11:mv————————————————-移动
12:cp————————————————-拷贝
13:mv————————————————重命名
15:find———————————————-搜索
16:rm————————————————-删除数据
17:ping———————————————-查看能不能上网
19:tar cf ————————————————打压缩
20:tar xf——————————————-解压缩
安装:
yum install
rpm包安装
编译安装
快捷键:
1:Tab键—————————————-自动补全命令或路劲。
2:ctrl+l—————————————清屏
3: ctrl+c—————————————取消当前操作
4:vi/vim 快捷键:
复制当前行 ——————————yy
粘贴—————————————-p
剪切—————————————-dd
撤销—————————————-u
恢复—————————————-ctrl + r

Docker是一个容器化平台,它以容器的形式将你的应用程序及所有的依赖项打包在一起,以确保你的应用程序在任何环境中无缝运行。

Docker镜像是Docker容器的源代码,Docker镜像用于闯将容器,使用Build命令创建镜像。

Docker容器包括应用程序及所有的依赖项,作为操作系统的独立进程运行。

4、Docker容器有几种状态?

四种状态:运行、已停止、重新启动、已退出。

容器启动时要运行的命令

COPY和ADD的区别时COPY的SRC只能是本地文件,其他用法一致。

8、容器与主机之间的数据拷贝命令?

  • Docker cp命令用于穷奇与主机之间的数据拷贝

9、启动nginx容器(随机端口映射),并挂载本地文件目录到容器html的命令?

当镜像用作另一个镜像构建的基础时,ONBUILD指令像镜像添加将在稍后执行的触发指令。如果要构建将用作构建其他镜像的基础的镜像(例如,可以使用特定于用户的配置自定义的应用程序构建环境或守护程序),这将非常有用。

12、如何在生产中监控docker?

  1. Docker提供docker:stats和docker事件等工具来监控生产中的docker。我们可以使用这些命令获取重要统计数据的报告。
  2. Docker统计数据:当我们使用容器ID调用docker stats时,我们获得容器的CPU,内存使用情况等。它类似于Linux中的top命令。
  3. Docker事件:docker事件是一个命令,用于查看docker守护程序中正在进行的活动流。一些常见的docker事件是:attach,commit,die,detach,rename,destroy等。我们还可以使用各种选项来限制或过滤我们感性其的事件。

    1、Docker的配置文件放在那里。如何修改配置?

    2、如何更改docker的默认存储设置?

    Docker的默认存放位置是/var/lib/docker,如果希望将docker的本地文件存储到其他分区,可以使用Linux软连接的方式来做。

    LXC利用Linux上相关技术实现容器,docker则在如下的几个方面进行了改进:

    通过抽象容器配置,容器可以实现一个平台移植到另一个平台

    基于AUFS的镜像系统为容器的分发带来了很多的便利,通是共同的镜像层只需要存储一份,实现高效率的存储

    类似于GIT的版本管理理念,用户可以更方便的创建、管理镜像文件

    仓库系统大大降低了镜像的分发和管理的成本

    各种现有的工具(配置管理、云平台)对docker的支持,以及基于docker的pass、Cl等系统,让docker的应用更加方便和多样

    1. Vagrant类似于Boot2Docker(一款运行Docker的最小内核),是一套虚拟机的管理环境,Vagrant可以在多种系统上和虚拟机软件中运行,可以在Windows、Mac等非Linux平台上为Docker支持,自身具有较好的包装性和移植性。原生Docker自身只能运行在Linux平台上,但启动和运行的性能比虚拟机要快,往往更适合快速开发和部署应用的场景。

    Docker不是虚拟机,而是进程隔离,对于资源的消耗很少,单一开发环境下Vagrant是虚拟机上的封装,虚拟机本身会消耗资源.

    1、如何将一台宿主机的docker环境迁移到另外一台宿主机?

    停止docker服务,将整个docker存储文件复制到另外一太宿主机上,然后调整另外一台宿主机的配置即可。

    2、Docker容器创建后,删除了/var/run/netns目录下的网络名字空间文件,可以手动恢复它:

    查看容器进程ID,比如1234

    到proc目录下,把对应的网络名字空间文字链接到/var/run/netns,然后通过正常的系统命令查看操作容器的名字空间

我要回帖

更多关于 重启容器 的文章

 

随机推荐