首先影响docker拉取镜像加速的原因有几个,挨个进行检查后就会发现问题所在
1.添加docker的阿里yum源
tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=http://mirrors.aliyun.com/docker-engine/yum/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
然后使用docker search搜索镜像并拉去镜像
docker search zabbix
date && docker pull monitoringartist/zabbix-3.0-xxl && date
2.这时候拉取可以看到非常慢,就需要配置docker加速了
vi /etc/docker/daemon.json #编辑此文件,添加以下文件
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://mirror.ccs.tencentyun.com"
]
}
常用镜像有以下这些:可以自己选择
科大:https://docker.mirrors.ustc.edu.cn/
网易:https://hub-mirror.c.163.com/
七牛云加速器:https://reg-mirror.qiniu.com
阿里云:https://<你的ID>.mirror.aliyuncs.com
腾讯云:https://mirror.ccs.tencentyun.com
然后重启docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker
3.第三种原因就是可能就是根目录下的磁盘空间不够了
有时会提示:no space left on device 磁盘空间不足
磁盘满了分为inode和block。
inode是格式化创建文件系统时产生的,用于存放文件的属性信息,存放着block的位置,没有文件名,创建一个非空文件占用1个inode和至少1个block
block是实际存放数据的位置,block大小分为1k 4k 8k 分区大于500m默认是4K,文件很大占用多个block,文件非常小1k block剩余空间不能继续使用,所以系统中block消耗更快
df -h #查看所有block使用情况,这里可以看到那个目录下的空间使用情况,需要留意/根目录的使用情况,如果很满的话将会影响后续软件安装和docker的镜像拉取等
du -sh /usr/* |grep G #在根目录下执行该命令,查找大文件,再看根目录下的那个目录占用空间比较大,然后再进入到这些目录下再次执行该查找大文件的命令,直至找到那个占用空间大的文件或目录,确认该目录或文件非必要可以进行删除
df -h #再次返回到根目录下执行该命令,就可以看到/根目录下的空间有所释放
也可以适当删除home家目录下的一些文件或目录,然后将家目录的空间分一些给到根目录下去,这个操作我后面再讲,这里的一些清除/根目录下的一些操作也是能有效释放/根目录内存的
还有就是inode满了(使用df -h发现还有空间)
df -i #查看inode使用情况,然后根据返回,找到那个占用很大的空间的那个挂载点的目录下,即对应的后面的那个目录,查看该目录下的文件,文件小且多,评估以下这些文件是否必要,非必要可以进行删除
rm -rf 文件名 #删除文件
df -i #再次查看inode使用情况,应该就不会那么满了
如果不知道小文件都怎么找,可以使用以下方法,找系统中 目录大小大于1M(目录一般大小为4K,所以目录要是大了那么文件必然很多)
find / -size +4k -type d |xargs ls -ldhi
还有一种情况就是文件被占用一直没彻底删除,即df -h有空间,但是放不进去东西
lsof |grep deleted #显示系统中被打开的文件,过滤出deleted字段
显示中第一列为:软件/服务名称
显示中第八列:文件大小
显示中第十列:文件的名字或路径
显示中第是一列:标记(硬链接数为0 进程调用数不为零 就会出现delete)
/etc/init.d/rsyslog restart #重启对应的服务 释放磁盘空间
df -h #再次查看所有block使用情况
为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返
我有一个在Linux服务器上运行的ruby脚本。它不使用rails或任何东西。它基本上是一个命令行ruby脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m
1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里
注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配
1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模
我是ruby的新手,正在配置IRB。我喜欢pretty-print(需要'pp'),但总是输入pp来漂亮地打印它似乎很麻烦。我想做的是默认情况下让它漂亮地打印出来,所以如果我有一个var,比如说,'myvar',然后键入myvar,它会自动调用pretty_inspect而不是常规检查。我从哪里开始?理想情况下,我将能够向我的.irbrc文件添加一个自动调用的方法。有什么想法吗?谢谢! 最佳答案 irb中默认pretty-print对象正是hirb被迫去做。Theseposts解释hirb如何将几乎所有内容转换为ascii表。虽
我想在IRB中浏览文件系统并让提示更改以反射(reflect)当前工作目录,但我不知道如何在每个命令后进行提示更新。最终,我想在日常工作中更多地使用IRB,让bash溜走。我在我的.irbrc中试过这个:require'fileutils'includeFileUtilsIRB.conf[:PROMPT][:CUSTOM]={:PROMPT_N=>"\e[1m:\e[m",:PROMPT_I=>"\e[1m#{pwd}>\e[m",:PROMPT_S=>"FOO",:PROMPT_C=>"\e[1m#{pwd}>\e[m",:RETURN=>""}IRB.conf[:PROMPT_MO
我在思考流量控制的最佳实践。我应该走哪条路?1)不要检查任何东西并让程序失败(更清晰的代码,自然的错误消息):defself.fetch(feed_id)feed=Feed.find(feed_id)feed.fetchend2)通过返回nil静默失败(但是,“CleanCode”说,你永远不应该返回null):defself.fetch(feed_id)returnunlessfeed_idfeed=Feed.find(feed_id)returnunlessfeedfeed.fetchend3)抛出异常(因为不按id查找feed是异常的):defself.fetch(feed_id