file

阅读 / 问答 / 标签

file Serv-U.dll obscure 什么意思

Serv-U.dll文件可能被进程占用,或者被只读锁定等等的原因,导致无法进行破解写入可以看一下有没有挂钩的进程,结束它或者重启一下 看看有没有被解除锁定

怎么用AjaxFileUpload实现多文件上传

这次给大家带来怎么用AjaxFileUpload实现多文件上传,用AjaxFileUpload实现多文件上传的注意事项有哪些,下面就是实战案例,一起来看一下。本文重点给大家介绍AjaxFileUpload+Struts2实现多文件上传功能,具体实现代码大家参考下本文。单文件和多文件的实现区别主要修改两点,一是插件ajaxfileupload.js里接收file文件ID的方式二是后台action是数组形式接收1、ajaxFileUpload文件下载地址http://www.phpletter.com/Demo/AjaxFileUpload-Demo/2、引入jquery-1.8.0.min.js、ajaxFileUpload.js文件3、文件上传页面核心代码<body> <form action="" enctype="multipart/form-data"> <h2> 多文件上传 </h2> <input type="file" id="file1" name="file" /> </br> <input type="file" id="file2" name="file" /> </br> <input type="file" id="file3" name="file" /> </br> <span> <table id="down"> </table> </span> </br> <input type="button" onclick="fileUpload();" value="上传"> </form> </body> <script type="text/javascript"> function fileUpload() { var files = ["file1","file2","file3"]; //将上传三个文件 ID 分别为file2,file2,file3 $.ajaxFileUpload( { url : "fileUploadAction", //用于文件上传的服务器端请求地址 secureuri : false, //一般设置为false fileElementId : files, //文件上传的id属性 <input type="file" id="file" name="file" /> dataType : "json", //返回值类型 一般设置为json success : function(data, status) { var fileNames = data.fileFileName; //返回的文件名 var filePaths = data.filePath; //返回的文件地址 for(var i=0;i<data.fileFileName.length;i++){ //将上传后的文件 添加到页面中 以进行下载 $("#down").after("<tr><td height="25">"+fileNames[i]+ "</td><td><a href="downloadFile?downloadFilePath="+filePaths[i]+"">下载</a></td></tr>") } } }) } </script>以上fileElementId属性接收的files参数为["file1","file2","file3"]由于是多文件,所以我们需要修改ajaxfileupload.js 找到以下代码var oldElement = jQuery("#" + fileElementId); var newElement = jQuery(oldElement).clone(); jQuery(oldElement).attr("id", fileId); jQuery(oldElement).before(newElement); jQuery(oldElement).appendTo(form);修改为:for(var i in fileElementId){ var oldElement = jQuery("#" + fileElementId[i]); var newElement = jQuery(oldElement).clone(); jQuery(oldElement).attr("id", fileId); jQuery(oldElement).before(newElement); jQuery(oldElement).appendTo(form); }4、文件上传Actionpublic class FileAction { private File[] file; //文件 private String[] fileFileName; //文件名 private String[] filePath; //文件路径 private String downloadFilePath; //文件下载路径 private InputStream inputStream; /** * 文件上传 * @return */ public String fileUpload() { String path = ServletActionContext.getServletContext().getRealPath("/upload"); File file = new File(path); // 判断文件夹是否存在,如果不存在则创建文件夹 if (!file.exists()) { file.mkdir(); } try { if (this.file != null) { File f[] = this.getFile(); filePath = new String[f.length]; for (int i = 0; i < f.length; i++) { String fileName = java.util.UUID.randomUUID().toString(); // 采用时间+UUID的方式随即命名 String name = fileName + fileFileName[i].substring(fileFileName[i].lastIndexOf(".")); //保存在硬盘中的文件名 FileInputStream inputStream = new FileInputStream(f[i]); FileOutputStream outputStream = new FileOutputStream(path+ "\" + name); byte[] buf = new byte[1024]; int length = 0; while ((length = inputStream.read(buf)) != -1) { outputStream.write(buf, 0, length); } inputStream.close(); outputStream.flush(); //文件保存的完整路径 // 如:D: omcat6webappsstruts_ajaxfileupload\uploada0be14a1-f99e-4239-b54c-b37c3083134a.png filePath[i] = path + "\" + name; } } } catch (Exception e) { e.printStackTrace(); } return "success"; } /** * 文件下载 * @return */ public String downloadFile() { String path = downloadFilePath; HttpServletResponse response = ServletActionContext.getResponse(); try { // path是指欲下载的文件的路径。 File file = new File(path); // 取得文件名。 String filename = file.getName(); // 以流的形式下载文件。 InputStream fis = new BufferedInputStream(new FileInputStream(path)); byte[] buffer = new byte[fis.available()]; fis.read(buffer); fis.close(); // 清空response response.reset(); // 设置response的Header String filenameString = new String(filename.getBytes("gbk"),"iso-8859-1"); response.addHeader("Content-Disposition", "attachment;filename="+ filenameString); response.addHeader("Content-Length", "" + file.length()); OutputStream toClient = new BufferedOutputStream(response.getOutputStream()); response.setContentType("application/octet-stream"); toClient.write(buffer); toClient.flush(); toClient.close(); } catch (IOException ex) { ex.printStackTrace(); } return null; } /** * 省略set get方法 */ }5、struts配置<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="ajax_code" extends="json-default"> <!-- 文件上传 --> <action name="fileUploadAction" class="com.itmyhome.FileAction" method="fileUpload"> <result type="json" name="success"> <param name="contentType">text/html</param> </result> </action> </package> <package name="jsp_code" extends="struts-default"> <!-- 文件下载 --> <action name="downloadFile" class="com.itmyhome.FileAction" method="downloadFile"> <result type="stream"> <param name="contentType">application/octet-stream</param> <param name="inputName">inputStream</param> <param name="contentDisposition">attachment;filename=${fileName}</param> <param name="bufferSize">4096</param> </result> </action> </package> </struts>浏览器中输入:http://localhost:8080/struts_ajaxfileupload/index.jsp 即可进行文件上传如图:相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!推荐阅读:Ajax和jsonp在项目中的实战总结只需四步即可实现ajax发送异步请求

ed2k://|file|SIRO-1690.avi|1802703012|FB6A0E84C474

如何创建trimmomatic的adapter file

在Trimmomatic的目录下面有一个adapters目录里面就是trimmomatic自带的adapter文件。

JAF 刷机为什么APE variant file:None?刷机时MCU.PPM.CNT灯都显示,就是APE Variant灯不显示?

表示还是用凤凰吧、JAF用不惯~~

PORE安装中‘安装目录不能有空格(就是说不能装在Program Files下)”是什么意思

安装在Program Files下当然不可以要安装在ProgramFiles下呵呵你那个Program Files中间有个空格其实就是说你的文件名中间不能有空格哈哈....

通过百度学术求助,下载的文献是RIS格式,按照网友的回答,我尝试使用了endnote和filevi

ris格式的文献可以用endnote软件打开,endnote可以去网上下载一个破解版的,然后点击File→Import→File,再在Duplicated选项里选择RIS格式文件就可以。或者用Word好像可以直接打开,,我刚才不小心在Word2010里打开了一个ris文件,竟然预览成功了。。。

fileviewpro打开ndt文件是十六进制怎么办

FileViewPro是一款可以打开任何文件的软件,也就是所使用FileViewPro软件可以打开所有格式的文档,您是否曾尝试打开某个文件,但Windows无法让您这样做?您无法打开文件的原因是,您没有打开此文件扩展名的准确软件

穿越火线登陆出现英文 Msz file not existl

卸载重装吧

为什么要多个mysql redo log file

用于日志满了切换之用或互相备份之用

如何调整Oracle Redo Logfile日志文件的大小

1.查看当前日志组成员SQL> select member from v$logfile; MEMBER--------------------------------------------------------------------------------/u01/oracle/oradata/orcl/redo03.log/u01/oracle/oradata/orcl/redo02.log/u01/oracle/oradata/orcl/redo01.log2. 查看当前日志组状态:SQL> select group#,members,bytes/1024/1024,status from v$log; GROUP# MEMBERS BYTES/1024/1024 STATUS---------- ---------- --------------- ----------------1 1 50 ACTIVE2 1 50 CURRENT3 1 50 INACTIVE现在有三个日志成员,大小为50M,欲更改为100M增加日志组SQL>alter database add logfile group 4 ("/u01/oracle/oradata/orcl/redo04.log") size 100M;SQL>alter database add logfile group 5 ("/u01/oracle/oradata/orcl/redo05.log") size 100M;SQL>alter database add logfile group 6 ("/u01/oracle/oradata/orcl/redo06.log") size 100M;3.切换到新增的日志组上SQL> alter system switch logfile;System altered.SQL> alter system switch logfile;System altered.SQL> select group#,members,bytes/1024/1024,status from v$logGROUP# MEMBERS BYTES/1024/1024 STATUS---------- ---------- --------------- ----------------1 1 50 INACTIVE2 1 50 INACTIVE3 1 50 ACTIVE4 1 100 CURRENT5 1 100 UNUSED6 1 100 UNUSEDa. CURRENT指当前的日志文件,在进行实例恢复时是必须的;b. ACTIVE是指活动的非当前日志,在进行实例恢复时会被用到。Active状态意味着,Checkpoint尚未完成,因此该日志文件不能被覆盖。c. INACTIVE是非活动日志,在实例恢复时不再需要,但在介质恢复时可能需要。d. UNUSED表示该日志从未被写入,可能是刚添加的,或RESETLOGS后被重置。4.删除旧的日志组SQL> alter database drop logfile group 1; Database altered.SQL> alter database drop logfile group 22 /Database altered.SQL> alter database drop logfile group 3;alter database drop logfile group 3*ERROR at line 1:ORA-01624: log 3 needed for crash recovery of instance dbserver (thread 1)ORA-00312: online log 3 thread 1: "/u01/oracle/oradata/orcl/redo03.log"由于log 3 日志成员还出去active 状态,所以不能drop掉的,再次执行 alter system switch logfile; SQL> select group#,members,bytes/1024/1024,status from v$log;GROUP# MEMBERS BYTES/1024/1024 STATUS---------- ---------- --------------- ----------------3 1 50 INACTIVE4 1 100 ACTIVE5 1 100 CURRENT6 1 100 UNUSEDSQL> alter database drop logfile group 3;Database altered.SQL> select group#,members,bytes/1024/1024,status from v$log;GROUP# MEMBERS BYTES/1024/1024 STATUS---------- ---------- --------------- ----------------4 1 100 ACTIVE5 1 100 ACTIVE6 1 100 CURRENT在操作系统下删除掉redolog 日志文件mv /u01/oracle/oradata/orcl/redo0[1-3].log /tmp

OracleTuningLogFileSync等待事件的几种策略

在一个频繁 commit/rollback 或磁盘 I/O 有问题、大量物理读写争用,那么、我们便会经常瞧见 LOG FILE SYNC 等待事件出现在 TOP在一个频繁 commit/rollback 或磁盘 I/O 有问题、大量物理读写争用,那么、我们便会经常瞧见 LOG FILE SYNC 等待事件出现在 TOP EVENTS 中,评估 LOG FILE SYNC等待事件的指标是平均等待时间、以及 AWR 后续的 WAIT EVENT HISTOGRAM对于 OLTP、平均等待时间 7 ms算正常、正常情况下平均等待时间不会超过 10 ms下面给出几种优化的策略、一 优化 REDO 日志的 I/O如果能够优化 REDO 日志文件的存储、使之存放到更快的磁盘、便可减少这个等待事件单次等待时间二 加大 LOG BUFFER加大 LOG BUFFER 、可使平均每次写入 REDO 日志文件的 REDO 字节数增加。从而、减少 REDO 的 I/O 次数、进而达到优化 REDO 日志文件写等待时间的目的三 减少提交次数通过加大一次提交记录的数量、减少提交批次、也可有效减少 LOG FILE SYNC等待时间不过、此法可能需要变更应用、代价较大四 部分经常提交的事务设置为异步提交通过设置 COMMIT_WRITE参数、可以控制异步提交该参数支持系统级、但也支持会话级其中、"IMMEDIATE,NOWAIT"是较为常用的优化方案可通过:● 变更参数 commit_write● 直接命令:commit write immediate nowait最后、Rocky 想在唠叨 3 下、我们在数据库的日常维护中应该对此建立基线(baseline)如果这个指标有异常变化、一定要尽快分析并解决问题、一旦这个指标恶化,,可能导致系统性能急剧下降、甚至会导致短暂的挂起。

如何调整Oracle Redo Logfile日志文件的大小

1.查看当前日志组成员SQL> select member from v$logfile; MEMBER--------------------------------------------------------------------------------/u01/oracle/oradata/orcl/redo03.log/u01/oracle/oradata/orcl/redo02.log/u01/oracle/oradata/orcl/redo01.log2. 查看当前日志组状态:SQL> select group#,members,bytes/1024/1024,status from v$log; GROUP# MEMBERS BYTES/1024/1024 STATUS---------- ---------- --------------- ---------------- 1 1 50 ACTIVE 2 1 50 CURRENT 3 1 50 INACTIVE现在有三个日志成员,大小为50M,欲更改为100M增加日志组SQL>alter database add logfile group 4 ("/u01/oracle/oradata/orcl/redo04.log") size 100M;SQL>alter database add logfile group 5 ("/u01/oracle/oradata/orcl/redo05.log") size 100M;SQL>alter database add logfile group 6 ("/u01/oracle/oradata/orcl/redo06.log") size 100M;3.切换到新增的日志组上SQL> alter system switch logfile;System altered.SQL> alter system switch logfile;System altered.SQL> select group#,members,bytes/1024/1024,status from v$log GROUP# MEMBERS BYTES/1024/1024 STATUS---------- ---------- --------------- ---------------- 1 1 50 INACTIVE 2 1 50 INACTIVE 3 1 50 ACTIVE 4 1 100 CURRENT 5 1 100 UNUSED 6 1 100 UNUSEDa. CURRENT指当前的日志文件,在进行实例恢复时是必须的;b. ACTIVE是指活动的非当前日志,在进行实例恢复时会被用到。Active状态意味着,Checkpoint尚未完成,因此该日志文件不能被覆盖。c. INACTIVE是非活动日志,在实例恢复时不再需要,但在介质恢复时可能需要。d. UNUSED表示该日志从未被写入,可能是刚添加的,或RESETLOGS后被重置。4.删除旧的日志组SQL> alter database drop logfile group 1; Database altered.SQL> alter database drop logfile group 2 2 /Database altered.SQL> alter database drop logfile group 3;alter database drop logfile group 3*ERROR at line 1:ORA-01624: log 3 needed for crash recovery of instance dbserver (thread 1)ORA-00312: online log 3 thread 1: "/u01/oracle/oradata/orcl/redo03.log"由于log 3 日志成员还出去active 状态,所以不能drop掉的,再次执行 alter system switch logfile; SQL> select group#,members,bytes/1024/1024,status from v$log;GROUP# MEMBERS BYTES/1024/1024 STATUS---------- ---------- --------------- ---------------- 3 1 50 INACTIVE 4 1 100 ACTIVE 5 1 100 CURRENT 6 1 100 UNUSEDSQL> alter database drop logfile group 3;Database altered.SQL> select group#,members,bytes/1024/1024,status from v$log;GROUP# MEMBERS BYTES/1024/1024 STATUS---------- ---------- --------------- ---------------- 4 1 100 ACTIVE 5 1 100 ACTIVE 6 1 100 CURRENT在操作系统下删除掉redolog 日志文件mv /u01/oracle/oradata/orcl/redo0[1-3].log /tmp

如何调整Oracle Redo Logfile日志文件的大小

我认为只能先添加一个大的日志文件,然后删除小的日志文件。

深入理解HBASE(4)HFile

1)HFile由DataBlock、Meta信息(Index、BloomFilter)、Info等信息组成。 2)整个DataBlock由一个或者多个KeyValue组成。 3)在文件内按照Key排序。 这里只介绍V2版本的,HFileV1的数据格式在0.92版本升级到V2版本。 1)文件分为三部分:Scanned block section,Non-scanned block section,以及Opening-time data section Scanned block section:表示顺序扫描HFile时(包含所有需要被读取的数据)所有的数据块将会被读取,包括Leaf Index Block和Bloom Block; Non-scanned block section:HFile顺序扫描的时候该部分数据不会被读取,主要包括Meta Block即BloomFilter和Intermediate Level Data Index Blocks两部分; Load-on-open-section:这部分数据在HBase的region server启动时,需要加载到内存中。包括FileInfo、Bloom filter block、data block index和meta block index; Trailer:这部分主要记录了HFile的基本信息、各个部分的偏移值和寻址信息。 Leaf index block具体存储了DataBlock的offset、length、以及firstkey的信息。 RootDataIndex 存储的是每个Leaf index block的offset、length、Leaf index Block记录的第一个key,以及截至到该Leaf Index Block记录的DataBlock的个数。 假定DataBlock的个数足够多,HFile文件又足够大的情况下,默认的128KB的长度的ROOTDataIndex仍然存在超过chunk大小的情况时,会分成更多的层次。这样最终的可能是ROOT INDEX –> IntermediateLevel ROOT INDEX(可以是多层) —〉Leaf index block 在ROOT INDEX中会记录Mid Key所对应的信息,帮助在做File Split或者折半查询时快速定位中间Row的信息。 HFile V2的写操作流程: 1)Append KV到 Data Block。在每次Append之前,首先检查当前DataBlock的大小是否超过了默认的设置,如果不超出阈值,写入输出流。如果超出了阈值,则执行finishBlock(),按照Table-CF的设置,对DataBlock进行编码和压缩,然后写入HFile中。//以Block为单位进行编码和压缩,会有一些性能开销,可以参考 HBase实战系列1—压缩与编码技术 2)根据数据的规模,写入Leaf index block和Bloom block。 Leaf index Block,每次Flush一个DataBlock会在该Block上添加一条记录,并判断该Block的大小是否超过阈值(默认128KB),超出阈值的情况下,会在DataBlock之后写入一个Leaf index block。对应的控制类:HFileBlockIndex,内置了BlockIndexChunk、BlockIndexReader和BlockIndexWriter(实现了InlineBlockWriter接口)。 Bloom Block设置:默认使用MURMUR hash策略,每个Block的默认大小为128KB,每个BloomBlock可以接收的Key的个数通过如下的公式计算,接收的key的个数 与block的容量以及errorRate的之间存在一定的关系,如下的计算公式中,可以得到在系统默认的情况下,每个BloomBlock可以接纳109396个Key。 注意:影响BloomBlock个数的因素,显然受到HFile内KeyValue个数、errorRate、以及BlockSize大小的影响。可以根据应用的需求合理调整相关控制参数。 每一个BloomBlock会对应index信息,存储在Meta Index区域。 这样在加载数据的时候,只需加载不超过128KB的RootDataIndex以及IntermediateLevelRootIndex,而避免加载如HFile V1的所有的Leaf index block信息,同样,也只需要加载BloomBlockIndex信息到内存,这样避免在HFile V1格式因为加载过大的DataBlockIndex造成的开销,加快Region的加载速度。 在HFile中根据一个key搜索一个data的过程: 1、先内存中对HFile的root index进行二分查找。如果支持多级索引的话,则定位到的是leaf/intermediate index,如果是单级索引,则定位到的是data block 2、如果支持多级索引,则会从缓存/hdfs(分布式文件系统)中读取leaf/intermediate index chunk,在leaf/intermediate chunk根据key值进行二分查找(leaf/intermediate index chunk支持二分查找),找到对应的data block。 3、从缓存/hdfs中读取data block 4、在data block中遍历查找key。 1、 首先读取文件尾的4字节Version信息(FileTrailer的version字段)。 2、 根据Version信息得到Trailer的长度(不同版本有不同的长度),然后根据trailer长度,加载FileTrailer。 3、 加载load-on-open部分到内存中,起始的文件偏移地址是trailer中的loadOnOpenDataOffset,load-on-open部分长度等于(HFile文件长度 - HFileTrailer长度) Load-on-open各个部分的加载顺序如下: 依次加载各部分的HFileBlock(load-on-open所有部分都是以HFileBlock格式存储):data index block、meta index block、FileInfo block、generate bloom filter index、和delete bloom filter。HFileBlock的格式会在下面介绍。 在hfile中,所有的索引和数据都是以HFileBlock的格式存在在hdfs中, HFile version2的Block格式如下两图所示,有两种类型,第一种类型是没有checksum;第二种是包含checksum。对于block,下图中的绿色和浅绿色的内存是block header;深红部分是block data;粉红部分是checksum。 第一种block的header长度= 8 + 2 * 4 + 8; 第二种block的header长度=8 + 2 * 4 + 8 + 1 + 4 * 2; BlockType:8个字节的magic,表示不同的block 类型。 CompressedBlockSize:表示压缩的block 数据大小(也就是在HDFS中的HFileBlock数据长度),不包括header长度。 UncompressedBlockSize:表示未经压缩的block数据大小,不包括header长度。 PreBlockOffset:前一个block的在hfile中的偏移地址;用于访问前一个block而不用跳到前一个block中,实现类似于链表的功能。 CheckSumType:在支持block checksum中,表示checksum的类型。 bytePerCheckSum:在支持checksum的block中,记录了在checksumChunk中的字节数;records the number of bytes in a checksum chunk。 SizeDataOnDisk:在支持checksum的block中,记录了block在disk中的数据大小,不包括checksumChunk。 DataBlock是用于存储具体kv数据的block,相对于索引和meta(这里的meta是指bloom filter)DataBlock的格式比较简单。 在DataBlock中,KeyValue的分布如下图,在KeyValue后面跟一个timestamp。 HFile中的index level是不固定的,根据不同的数据类型和数据大小有不同的选择,主要有两类,一类是single-level(单级索引),另一类是multi-level(多级索引,索引block无法在内存中存放,所以采用多级索引)。 HFile中的index chunk有两大类,分别是root index chunk、nonRoot index chunk。而nonRoot index chunk又分为interMetadiate index chunk和leaf index chunk,但intermetadiate index chunk和leaf index chunk在内存中的分布是一样的。 对于meta block和bloom block,采用的索引是single-level形式,采用single-level时,只用root index chunk来保存指向block的索引信息(root_index-->xxx_block)。 而对于data,当HFile的data block数量较少时,采用的是single level(root_index-->data_block)。当data block数量较多时,采用的是multi-level,一般情况下是两级索引,使用root index chunk和leaf index chunk来保存索引信息(root_index-->leaf_index-->data_block);但当data block数量很多时,采用的是三级索引,使用root index chunk、intermetadiate index chunk和leaf index chunk来保存指向数据的索引(root_index-->intermediate_index-->leaf_index-->data_block)。 所有的index chunk都是以HFileBlock格式进行存放的,首先是一个HFileBlock Header,然后才是index chunk的内容。 Root index适用于两种情况: 1、作为data索引的根索引。 2、作为meta和bloom的索引。 在Hfile Version2中,Meta index和bloom index都是single-level,也都采用root索引的格式。Data index可以single-level和multi-level的这形式。Root index可以表示single-level index也可以表示multi-level的first level。但这两种表示方式在内存中的存储方式是由一定差别,见图。 对于multi-level root index,除了上面index entry数组之外还带有格外的数据mid-key的信息,这个mid-key是用于在对hfile进行split时,快速定位HFile的中间位置所使用。Multi-level root index在硬盘中的格式见图3.4。 Mid-key的信息组成如下: 1、Offset:所在的leaf index chunk的起始偏移量 2、On-disk size:所在的leaf index chunk的长度 3、Key:在leaf index chunk中的位置。

"Autodesk WHIP!"是我C盘PROGRAM FILES里的

"AutodeskWHIP!"是和AutoCAD200x密切相关的一个插件。AutoCAD200x的ePlot图形输出功能生成为DWF文件,这是一种“电子图形文件”,能够在英特网上发表,同时以Web的图形格式来保存。利用英特网浏览器IE,在加上AutodeskWHIP(常见的4.0模块,也可用AutodeskVoloView),则可实现DWF图形的打开、查看和打印,并支持实时平移和缩放、图层、命名视图和嵌入超级链接的显示,但是不能编辑和修改,保证设计数据的安全。在你的问题中,不知你是怎样删除的CAD2002?切不要简单地删除到垃圾箱或粉碎文件!,这样可能会对系统的启动和运行产生难以预料的影响。正确的方法是到“控制面板”中的“添加/删除文件”中进行卸载,此时"AutodeskWHIP!"也一并卸载掉了。

怎么使用犀牛相机渲染?犀牛flamingohelpfiles渲染教程

Rhino是一款很好用的三维建模工具,虽然大小才几十兆,对硬件要求也低;但是它包含了所有的NURBS建模功能,这就是rhino受欢迎的主要原因,大家都爱用它来制作高精度模型给其他3D软件使用。如果你也是从事3D设计的,那你一定要学会使用Rhino这个软件哦,犀牛不仅对电脑要求低,使用也很简单,单靠自学就可以学会使用,的“犀牛(Rhino)工业设计零基础入门建模教程”就是一个非常好的自学教程,很多自学的犀牛的小伙伴看的都是这个教程哦。犀牛flamingohelpfiles渲染教程.打开“tutorial(教程)”目录下的FlamingoCamera.3dm文件。(该目录也包含了一个已完成的模型,如果你想对比检验你的最终渲染设置,可以打开FinishedCamera.3dm文件).将当前渲染器设为FlamingoRaytrace。1.从Render菜单下的currentRenderer.点击FlamingoRaytrace。2.点击Render,渲染一下透视图中的场景,该场景的渲染只花了几秒种。该模型没有被赋于任何材质,所以物体被成了白色,背景则是淡灰色,这就是我们开始创建我们的渲染的起点。为模型赋于材质(Assignmaterialstothemodel)。为了得到更好的效果,你会想到为场景中的物体分配材质。分配材质的一个简单方法是将材质分配给层,这样,该层中的所有物体都会具有层的材质属性。该文件中包含了很少的几个层。至于将材质分配给层还是分配给单个物体,完全由你决定。开始你的第一步,你将为Body,Lens和Ring层分配材质。.为Body层分配材质1.点击Edit-->Layers菜单下的EditLayers,或是右击状态栏中的Layer小方块。2.在EditLayers对话框中,点击Body层的Material栏。3.在MaterialProperties对话框中,点击Plug-in,然后点击Browse。4.在Materiallibrary对话框中,从Gettingstarted库中选择名为Plastics,Red,Light,Smooth的材质,(译者注:在本人的练习过程中,该库中并没有这个材质,与之最接近的是一个名为Plastics,Greens,Pure,Light,Smooth的材质,所以我选了这个,它们只是颜色不同而已。)5.点击MaterialLibrary和Materialproperties对话框中的OK。.为Lens层分配材质。重复以上步骤,为镜头Lens分配一个名为Glass,Clear,HightReflectivity的材质。.为Ring层分配材质。重复以上步骤,为Ring分配一个名为Plastic,black,Textured的材质。.渲染一下场景看一下效果。将相机放置于一个平面上(Setthecameraonabase)。相机现在看起来好多了,但是你仍可进一步改进它。下一步将为相机创建一个平面底座。这个平面将展现物体的阴影,帮助勾画出物体的轮廓及将它与背景分离出来。此处我们将用到Flamingo的GroundPlane(地平面)功能,它是一个无限大的平面,并且比使用一个大的surface平面渲染得快。你可以为GroundPlane分配材质,一般这一步都在增加灯光前做,因为这样可以看见投射在地平面上的阴影,用于估计后面所要增加的灯光及形成的阴影。.建立GroundPlane(地平面)1.点击Raytrace菜单下的Environment。2.在Environment对话框中,点击GroundPlane。3.在GroundPlane标签页上,点击Material,从Gettingstarted库中选择名为White,Cool,Glossy的材质。4.点击所有对话框中的OK。5.渲染看一下。打开灯光(Turnonthelights)该模型的聚光灯已经插入。聚光灯是此类桌面物体设置中最典型的运用。.检验灯光1.打开Light(灯光)层。该范例中有4盏聚光灯,它们用于产生相机圆滑表面的高光。2.渲染模型聚光灯取代了缺省的灯光。3.依次选取每一盏灯并检查它的属性,注意阴影(Shadow)及灯光强度(Lightintensity)的参数设置。左为的那盏灯所设置的阴影强度(Shadowintensity)比其它的灯要弱,因为它在相机镜头的左边投射了一个比较生硬的阴影。4.在MaterialProperties对话框中,点击“Plug-in”,然后点击Browse。5.在MaterialLibrary对话框中,从GettingStarted库中选择Plastics,Red,Light,smooth。6.点击OK。改变主体部分的材质。现在我们的基本成份都已各就各位,下一步就是以不同材质来增强模型和背景,使画面更加生动。我们将让图中红色的材质更富有光泽。.编辑Body层的材质。1.点击Edit-->Layers菜单下的EditLayers,或是右击状态栏中的Layer小方块。2.在EditLayers对话框中,点击Body层的Material栏。3.在MaterialProperties对话框中,点击Edit。该材质的基色(Basecolor)为红色,反射系数(Reflectivefinish)为0.316。我们想要材质变得更富有光泽,第一个想到的就是试着把Reflectivefinish滑块拖至最右边,但此时你会发现材质的那种硬塑料的质感和光泽被更强的反射所取代了,这是因为Reflectivefinish的镜面效应比前者的优先级更高。所以此时我们不是使用Reflectivefinish,而是使用Highlight(高光)。.使材质更富有光泽但不是反射。1.在Main标签页上,将Reflectivefinish设置为0。2.在Highlight标签页上,点击SpecifyHighlight(定义高光)3.将Sharpness(锐度)设置为300,使之形成一个小而强烈的高光区。4.将intensity设置为1.75左右。尝试着拖动滑块,体会一下这些设置的作用,这些变化在预览窗口中的小球上表现得最明显然后你可以点击OK保存这个材质,或是点击取消,使用我们事先为你准备好的名为RedPlasticwithhighlight的材质。5.渲染。贴上一个瓷釉标志。(Addadecallogo)通过Flamingo,你可以将一幅spot图放置于你的场景中作为标志或其它艺术效果。在这一章节中,我们将相机的正面增加文字标志的贴花。.贴上瓷釉标志。1.打开Decalplacement层,该层包含了一个矩形,用于辅助你放置贴花。2.选择相机的主体。3.在“edit”菜单下,点击“ObjectProperties”。4.在“Properties”对话框中,在DecalandWaves标签页上点击Decal下的Add。5.在Gettingstared目录中,选择Quickshoot.bmp文件。6.在Decalmappingstyle对话框中,点击Planar(平面)。7.在出现Location提示时,捕捉(snap)到矩形的左下角。8.在出现Width提示时,捕捉(snap)到矩形的右下角。9.在出现Heightdirection提示时,捕捉(snap)到矩形的左上角,说明高度的方向,贴花将保持图象文件的长宽比10.在Selectcontrolpoint(moveuseImageAsPectRatio)提示时,你可以调节贴花的位置及大小,或是直接按下回车完成放置。11.在Editdecal对话框中,在Masking下选择color.12.点击吸管图标并以之点击图象中的白色区域,使得白色区域不可见,而只有黄色的文字部分显示出来当Showmaskedcolor被选中时,白色的区域会变成用于显示遮罩区的颜色,这里是绿色。13.点击所有对话框中的OK。14.渲染看一下效果。使用一个可反射的地平面(Useareflectivegroundplane)白色的地平面已经很好地表现了聚光灯所投射的阴影,但我们可以使用一个可反射出相机的材质,使它看起来效果更好。.改变地平面(GroundPlane)的材质。1.点击Raytrace菜单下的Environment。2.在Environment对话框中,点击GroundPlane。3.在GroundPlane标签页上,点击Material,从Gettingstarted库中选取名为PearlFloor的材质。4.点击所有对话框中的OK。5.渲染,反射与折射会使渲染的时间增加九.改变背景颜色。(Changethebackgroundcolor)我们已经使用了一个平淡的灰色作为背景,而使用一个与物体颜色互为补色的背景将使画面更加突出。我们将使用一个绿色的,呈梯度变化的背景。.改变背景的颜色。1.点击Perspective视图以激活它。2.点击Raytrace菜单下的Environment。3.在Environment对话框中,在Main标签页上选中3-colorgradient(三色梯度)。4.将中间的色块设为暗绿色(Red=1,Green=81,Blue=1)5.将左边的色块设为白色(White)。6.将右边的色块设为淡灰色(Lightgray)。7.将Upper梯度限制设为22.00。8.将Middle梯度限制设为0.00。9.将Lower梯度限制设为-45.00。如此将形成在地平线以上有一段较窄的暗绿色带逐渐过渡到灰色,你会看见暗绿色部分反射在相机镜头上这一生动的视觉效果。10.点击所有对话框中的OK。11.渲染.改变背景颜色。(Changethebackgroundcolor)我们已经使用了一个平淡的灰色作为背景,而使用一个与物体颜色互为补色的背景将使画面更加突出。我们将使用一个绿色的,呈梯度变化的背景。.改变背景的颜色。1.点击Perspective视图以激活它。2.点击Raytrace菜单下的Environment。3.在Environment对话框中,在Main标签页上选中3-colorgradient(三色梯度)。4.将中间的色块设为暗绿色(Red=1,Green=81,Blue=1)5.将左边的色块设为白色(White)。6.将右边的色块设为淡灰色(Lightgray)。7.将Upper梯度限制设为22.00。8.将Middle梯度限制设为0.00。9.将Lower梯度限制设为-45.00。如此将形成在地平线以上有一段较窄的暗绿色带逐渐过渡到灰色,你会看见暗绿色部分反射在相机镜头上这一生动的视觉效果。10.点击所有对话框中的OK。11.渲染.增加一个反射物体。为了完成最终的格调,我们将额外增加一个物体,使之可以反射在相机的镜头上。这个物体可以是任何东西。因为它实际上是看不见的,但它会更丰富画面的材质和色彩,如果人以高分辨率渲染的话你将在画面中见到它。这是一个增加情趣最常用的窍门。在本范例中,我们将Rhino的标志模型放置于视线以外,如果绿色的材质被赋于了层,它的绿色外形将从镜头上反射出来,这里以是另一个使用补色来突出相机红色主体的机会。1.打开Rhinologo层。2.点击Edit-->Layers菜单下的EditLayers,或是右击状态栏中的Layer小方块。3.在EditLayers对话框中,点击Body层的Material栏。4.在MaterialProperties对话框中,点击Plug-in,然后点击Browse。5.在Materiallibrary对话框中,从Gettingstarted库中选择名为Plastics,Greens,Pure,Light,Smooth的材质。6.点击所有对话框中的OK。7.渲染。“犀牛flamingohelpfiles渲染教程”的内容就分享到这里了,看完这个分享你一定对犀牛有进一步的了解了吧,如果对犀牛的使用还有其他疑问,想更深入的了解rhino软件,可以点击这个链接:

我放在了GTA Vice City User Files游戏里怎么还没有

你把.b改为.sv就行了。汉化的与英文的存档后缀不同。

mac上的mysql的secure_file_priv怎么设置。

安装完mysql-server会提示可以运行mysql_secure_installation。运行mysql_secure_installation会执行几个设置:a)为root用户设置密码b)删除匿名账号c)取消root用户远程登录d)删除test库和对test库的访问权限e)刷新授权表使修改生效通过这几项的设置能够提高mysql库的安全。建议生产环境中mysql安装这完成后一定要运行一次mysql_secure_installation,详细步骤请参看下面的命令:复制代码代码如下:[root@server1~]#mysql_secure_installationNOTE:RUNNINGALLPARTSOFTHISSCRIPTISRECOMMENDEDFORALLMySQLSERVERSINPRODUCTIONUSE!PLEASEREADEACHSTEPCAREFULLY!InordertologintoMySQLtosecureit,we"llneedthecurrentpasswordfortherootuser.Ifyou"vejustinstalledMySQL,andyouhaven"tsettherootpasswordyet,thepasswordwillbeblank,soyoushouldjustpressenterhere.Entercurrentpasswordforroot(enterfornone):<–初次运行直接回车OK,successfullyusedpassword,movingon…SettingtherootpasswordensuresthatnobodycanlogintotheMySQLrootuserwithouttheproperauthorisation.Setrootpassword?[Y/n]<–是否设置root用户密码,输入y并回车或直接回车Newpassword:<–设置root用户的密码Re-enternewpassword:<–再输入一次你设置的密码Passwordupdatedsuccessfully!Reloadingprivilegetables..…Success!Bydefault,aMySQLinstallationhasananonymoususer,allowinganyonetologintoMySQLwithouthavingtohaveauseraccountcreatedforthem.Thisisintendedonlyfortesting,andtomaketheinstallationgoabitsmoother.Youshouldremovethembeforemovingintoaproductionenvironment.Removeanonymoususers?[Y/n]<–是否删除匿名用户,生产环境建议删除,所以直接回车…Success!Normally,rootshouldonlybeallowedtoconnectfrom"localhost".Thisensuresthatsomeonecannotguessattherootpasswordfromthenetwork.Disallowrootloginremotely?[Y/n]<–是否禁止root远程登录,根据自己的需求选择Y/n并回车,建议禁止…Success!Bydefault,MySQLcomeswithadatabasenamed"test"thatanyonecanaccess.Thisisalsointendedonlyfortesting,andshouldberemovedbeforemovingintoaproductionenvironment.Removetestdatabaseandaccesstoit?[Y/n]<–是否删除test数据库,直接回车-Droppingtestdatabase……Success!

如何取消mysql secure secure-file-priv

在某台DB上准备运行一个SQL语句,就是用SELECT INTO OUTFILE把查询结果写入到文件的时候提示以下信息:The MySQL server is running with the --secure-file-priv option so it cannot execute this statement出现这个问题的原因是因为启动MySQL的时候使用了--secure-file-priv这个参数,这个参数的主要目的就是限制LOAD DATA INFILE或者SELECT INTO OUTFILE之类文件的目录位置,我们可以使用SELECT @@global.secure_file_priv;查询到你当前设置的路径,默认应该是/var/lib/mysql-files如果要解决这个问题,我们可以通过下面2种方式:将你要导入或导出的文件位置指定到你设置的路径里由于不能动态修改,我们可以修改my.cnf里关于这个选项的配置,然后重启即可。

mysql --secure-file-priv问题解决方案

The MySQL server is running with the –secure-file-priv option so it cannot execute this statement. 在我们安装完 MySQL 之后,会自动生成一个名为my.ini的配置文件,该文件记录了 MySQL 的所有默认配置,如端口号、默认字符集、默认存储引擎等等。而这个配置文件,则位于隐藏文件夹ProgramData中 我们也可以通过命令查看secure-file-priv的当前值: show variables like "%secure%"; 查询显示: ecure-file-priv="C:/ProgramData/MySQL/MySQL Server 5.7/Uploads" 我们可以通过打开my.ini配置文件进行查看及修改: 如上图所示,我注释了 MySQL 的默认值,并修改成自己指定的路径。在我修改此配置文件的内容之后,例如修改了secure-file-priv的默认值,要想使其生效,必须关闭 MySQL 然后重新启动。需要我们注意的是:关闭 MySQL 并不是指简单的用exit命令退出 MySQL 或者关闭 MySQL 窗口,而是关闭 MySQL 服务,然后重新启动服务。

pagefile.pif的清除办法

(怕麻烦的话,可以直接使用磁碟机免疫工具1.删除以下文件:%systemroot%system32ComLSASS.EXE%systemroot%system32Com etcfg.000%systemroot%system32Com etcfg.dll%systemroot%system32ComSMSS.EXEC:WINDOWSsystem32894729.log(6位随机数字)C:894729.log(6位随机数字)C:WINDOWSsystem32dnsq.dllC:WINDOWSsystem32 tfsus.exeC:Documents and SettingsAll Users「开始」菜单程序启动~.exe2.重启计算机打开sreng:系统修复 - Windows Shell/IE 全选 点击修复双击我的电脑,工具,文件夹选项,查看,单击选取显示隐藏文件或文件夹 并清除隐藏受保护的操作系统文件(推荐)前面的钩。在提示确定更改时,单击“是” 然后确定点击 菜单栏下方的 文件夹按钮(搜索右边的按钮)在左边的资源管理器中单击打开系统所在盘删除C:pagefile.pifc:autorun.inf在左边的资源管理器中单击打开其他盘删除pagefile.pifautorun.inf3.使用杀毒软件全盘杀毒 修复被感染的exe文件4.修复被感染的htm等网页文件

我的U盘中了pagefile.pif病毒 .有什么简单的方法可以清理的吗?

嗯嗯你可以用U盘病毒专杀工具:USBCLEANER或USBKILLER。它们决对好用、你试试吧、网上下载它。祝你成功!!

如何彻底清除pagefile.pif

你的电脑中毒了用杀毒软件杀毒然后打开一个文件夹工具--文件夹选项--查看--去掉“隐藏受保护的操作系统文件”然后确定”,右击D盘选择打开--OK,多出一个Auturun文件,我们知道有系统属性的文件是无法直接删除的,我们要剔除它的系统属性,打开CMD(开始--运行--CMD.exe),输入:attribD:autorun.inf-s-h-r回车,然后直接删除文件。基本问题解决,不过一般情况下可能会有EXE文件的关联问题出现建议;先不要运行任何EXE程序,也就是可运行文件打开运行---输入REGEDIT找到HKEY_CURRENT_USERsoftwaremicrosoftwindowscurrentversionexplorermountpoints2{......}shell,删除shell下的autorun键值然后在CMD环境下使用assoc.exe=exefile,回车。恢复文件关联至此问题应该能够解决,如果还有问题的话就是你的电脑中了winlogon病毒清除网上有中方法可用:以下引用:winlogon病毒清除几天前发现在我的电脑中双击D盘时不能正常打开,右击选“打开”可以进入D。经检查,在D盘上多了一个pagfile.pif文件。删除后又会自动生成。但电脑没什么异常现象,也就没在意。晚上回家后打开电脑,发现所有应该开机后启动的项目均未启动,同时所有EXE文件均显示“该文件找不到!”打开“任务管理器”后发现多了个WINLOGON.EXE的进程,文件放在windows下。而winlogon.exe是windows域登陆管理器,用于处理登陆和退出系统过程。病毒利用了windows系统会先访问windows,然后再访问system32的原理解决进程相同的问题。同时病毒还在windows文件夹下生成1.com以及exeroute.exe、finder.com、explorer.com三个设置为shr的文件。用启动盘启动后进入C:windows,删除1.com,去掉exeroute.exe、finder.com、explorer.com的shr属性(attrib%1-s-h-r)并删除。进入D盘,删除D盘下autorun.inf的隐藏文件,同时删除pagefile.pif。启动后将cmd.exe改名为cmd.com,进入命令方式后打入:assoc.exe=exefile恢复文件关联。重启后计算机恢复正常。经查:winlogon.exe可能是W32.Netsky.D@mm蠕虫病毒。该病毒通过Email邮件传播,当打开病毒发送的附件时,即会被感染。病毒会创建SMTP引擎在受害者的计算机上,群发邮件进行传播。病毒允许攻击者访问你的计算机,窃取密码和个人数据。

pagefile.pif是什么啊我删了一会又有了

分类: 电脑/网络 >> 反病毒 问题描述: 我的瑞星监控(绿伞)启动不了 解析: 1.找到D盘的pagefile.pif文件,看它创建的日期是什么时候。删除之。 2.用系统还原功能,把系统还原到病毒产生之前的日期。这样系统进程里就暂时不会有病毒及其相关联的进程。不过似乎有的人在这时候即使做系统还原也无效(提示是“系统没被修改,无法还原”)。 这时候也可以用另外一种方法:用Windows的搜索功能分别在C盘和D盘查找病毒产生的当天文件,文件大小限制在50K以内,文件名不限。这样大概总共能找到4个左右病毒的MS-DOS相关文件(包括pagefile.pif),日期和大小都差不多的,删除之。 3.开始---运行---cmd(打开命令提示符) D: dir /a (没有参数A是看不到的,A是显示所有的意思) 此时你会发现D盘有一个autorun.inf文件,如下图:1.找到D盘的pagefile.pif文件,看它创建的日期是什么时候。删除之。 2.用系统还原功能,把系统还原到病毒产生之前的日期。这样系统进程里就暂时不会有病毒及其相关联的进程。不过似乎有的人在这时候即使做系统还原也无效(提示是“系统没被修改,无法还原”)。 这时候也可以用另外一种方法:用Windows的搜索功能分别在C盘和D盘查找病毒产生的当天文件,文件大小限制在50K以内,文件名不限。这样大概总共能找到4个左右病毒的MS-DOS相关文件(包括pagefile.pif),日期和大小都差不多的,删除之。 3.开始---运行---cmd(打开命令提示符) D: dir /a (没有参数A是看不到的,A是显示所有的意思) 此时你会发现D盘有一个autorun.inf文件,如下图: tk.files.storage.msn/x1pXp4iN9CYe7LihNfCmv3fsd9INtys23kwJ_2yLsTEZMKplysV8X64nN5HE134NjqS-LQ1Q-61a9psjqOLVtBZZ4g_PF_xoRJy_Jc7p2zvVYb1JSKLj5EryrmtS46GSr0INAfH6YjdFEIGDUkj3WYe7Q 运行attrib autorun.inf -s -h -r 去掉autorun.inf文件的系统、只读、隐藏属性 最后运行del autorun.inf 4.如果上面一步觉得不理解,那么在"工具-文件夹选项-查看"中选中"显示所有文件及文件夹",并且取消“隐藏受保护的操作系统文件”,如下图: tk.files.storage.msn/x1pXp4iN9CYe7LihNfCmv3fsd9INtys23kwJ_2yLsTEZMKnaR5PjfwUoAJozhBJ_EeU53gVJFU64L0nJDmpGWeigdWEPkzjHrFCKxj8dAxAlm5ldtMSCumtNSzSOVMAy6-jF2u9XFKblIl4dKLWIJmGXQ 这样你就会在D盘看到一个隐藏文件autorun.inf 这个文件的产生日期肯定是机器中毒当天(记得把只读属性取消) 将autorun.inf文件删除。 5.开始---运行---regedit(打开注册表) 查找pagefile.pif,并将其整个shell子键删除。 至此,病毒完美删除。 以上,如果有错漏的地方欢迎指正。

我的电脑中了一个叫pagefile.pif病毒,怎么删除也删除不了

360

pagefile.pif 病毒如何解决

每次都是复制的,没劲啊去网上下个GHOST硬盘版,再下个深度的GHOST系统盘硬盘安装安装后别点任何盘开始-运行-cmd-回车一个盘一个盘的清attribpagefile.exe-r-s-hdelpagefile.exeattribautorun.inf-r-s-hdelautorun.inf就OK了

打开 我的电脑 后双机D盘 怎么就出现`WINDOS无法找到PAGEFILE.PIF是怎么回事?~

是恶意程序。或者你种病毒了。在d盘点击右键选择打开然后找工具-文件夹选项-查看-显示所有文件-然后删除名字为autorun.inf的文件。可能会有几个多余的病毒或者恶意程序的文件 认识的话可以一起删除。就可以了

解决OSError: sndfile library not found

在训练语音识别模型的时候,遇到了如题目的报错,具体信息如下: 找了一些方法,我的linux上面还没有yum,于是就安装起来吧 (1)更新apt-get (2)安装yum

E冰封皇座魔兽争霸之冰封王座1.20worldeditydwe.exe File: ReplaceableTextures。。这个怎么解决的?谢

大阳散着热气,累得汗水淋漓,劈开闪电与隆冬的浪峰。我们总能在车子里逃避。是何等感受,在电器化的冬天被推进不再想你他默默怀念是逝中的的情哈哈

为什么cf进出时有Maz file is not exist 怎么办

那是安装错误了,需要依次重新安装.先安穿越,再依次安装补丁.(或者直接安装最新版本的穿越)

植物大战僵尸file too short

去玩植物大战僵尸魔幻版和植物大战僵尸年度版吗!还没用就玩小游戏的植物大战僵尸算了。差不了多少

安装CAD2010时系统提示:错误1310。写入文件时发生错误CProram FilesAutoCAD2010userdata.dll。

说明源安装文件不全,你再另下一个就可以,如果是WIN7系统,记得要右键以管理员身份运行注册机哦!!

Inserting an in index entry with id...into index $sii of file 9 是什么意思

在指数与身份证...开始进入插入索引$精工仪器公司的文件9

linux系统下用unzip解压报bad zipfile offset错误

传输过程中丢包了吧! 导致 你上传的包不完整,所以就会加压错误....

老兄啊 现在又有个问题 我squid编译通过了 makefile 文件也创建成功了但是执行make命令提示找不到命令

把make装上就行了yum install make

哪位大佬知道lookup_ops.index_table_from_file()这个函数是干嘛的呀?

lookup_ops.index_table_from_file()用于构造词汇表,词到索引的映射表。src_vocab_table.lookup(x)获得词x的id。

如何把梦幻中的MHRFILE格式视频转换成MP4格式或3GP格式???急需!!!急需!!

下载一个视频转换软件

每次打开nmm提示缺失skyrim INI file怎么解决?求大神指教

下载完去游戏目录运行一下TESV.exe进入游戏再退出 就会自动生成 skyrim INI file了 还有玩MOD最好用ModOrganizer加载 比NMM方便

java、dom解析xml时出现Premature end of file 错误,原因是xml文件后没有节点 ,看问题补充

这是写入XML文件的方法:public boolean addStu(Document doc){try{System.out.print(" "+"doc="+doc);Element eStu = doc.createElement("Student");Element eName = doc.createElement("Name");Element eSex = doc.createElement("Sex");Element eAge = doc.createElement("Age");Element eAddress = doc.createElement("Address");Attr aNo = doc.createAttribute("SID");Text tid = doc.createTextNode(stuNO);Text tname = doc.createTextNode(stuName);Text tsex = doc.createTextNode(stuSex);Text tage = doc.createTextNode(stuAge);Text taddress = doc.createTextNode(stuAddress);eStu.setAttributeNode(aNo).appendChild(tid);eStu.appendChild(eName).appendChild(tname);eStu.appendChild(eSex).appendChild(tsex);eStu.appendChild(eAge).appendChild(tage);eStu.appendChild(eAddress).appendChild(taddress);Element root = doc.getDocumentElement();root.appendChild(eStu);return true;}catch(Exception e){System.out.print("addStu:"+e+" ");return false;}}

ufiler软件怎么用

高级→配置→文件处理→文件关联。高级→配置→文件处理→文件关联,就可以选择你想打开的方式、右键文件,打开方式,找到UltraEdit,下面选择始终用此软件打开,这个方法也行。ufiler是Ucloud云的一个对象存储组件,可以将文件进行上传,下载,分片上传等等很多功能。

ufiler软件怎么用

高级→配置→文件处理→文件关联。高级→配置→文件处理→文件关联,就可以选择你想打开的方式、右键文件,打开方式,找到UltraEdit,下面选择始终用此软件打开,这个方法也行。ufiler是Ucloud云的一个对象存储组件,可以将文件进行上传,下载,分片上传等等很多功能。

菜单加载失败.找不到文件:SWFILECONV.(MNU/MNS/MNC)是怎么回事?

这个是由于你后安装solidworks造成的,你只要退出AUTOCAD然后在CAD目录下找到acad.rx,用记事本打开,清空保存,就ok了。

用CMAKE构建vs2008下的OGRE总是出现error in configuration process,project files may be invalid

我也遇到同样的问题:版本:VS2010 SP1CMake2.8.4OGRE 1.7.3关注中!!

ogre::FileNotFoundException 搞了半天,是怎么回事啊?

看看OGRE基础教程的手动配置那里,上面写了Root的几个构造函数是怎么回事

电脑无法开机提示deleting orphan file record segment。xxxxx

你的电脑可能检测不到硬盘(检测不到硬盘的症状:开机时IDE检测中不显示硬盘信息)这样进系统前就显示:"“rebootandselectproperbootdeviceorinsertbootmediainselectedbootdeviceandpressakey”硬盘检测失败的原因:1)主板BIOS没电,记不到硬盘信息,如果你的系统日期不正确的话,很可能是这个原因。解决办法:更换BIOS电池,重新进BIOS内检测硬盘。2)IDE线质量不好或插得不牢。解决办法:换一条IDE线或将IDE线插在主板另一个IDE槽里,连硬盘的线不要与其它IDE设备一起连接,例如光驱,分开两条IDE线连,正确设置主/从盘。3)硬盘故障,可能需要更换。4)如果你的电脑每次都能检测到硬盘而不能进入系统的话,把硬盘重新完全格式化,再重新装系统。5)另外设置硬盘启动试试(是不是设置错误)。6)还有一种情况,内存重新插拔一下、清一下灰也可以解决问题(有时是因为它引起的)。7)自己解决不了,建议检修一下去。

大硬盘出现如此文字Delete the orphan file record segmentXXXX (XXXX代表数字)

一:“开始→运行”,在运行对话框中键入“chkntfs /t:0”,即可将磁盘扫描等待时间设置为0;如果要在计算机启动时忽略扫描某个分区,比如C盘,可以输入“chkntfs /x c:”命令;如果要恢复对C盘的扫描,可使用“chkntfs /d c:”命令,即可还原所有chkntfs默认设置,除了自动文件检查的倒计时之外。二:开始--运行--regedit-HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession Manager”子键,然后在右侧窗口中找到“BootExecute”键值项并将其数值清空,最后按“F5”键刷新注册表即可

求助关于ReadFile 串口卡死的问题

增加以下超时设置: 进行超时处理试下应是可以的,我的MFC工程增加了就可以了,要不出错以后就会卡死,正常是不会卡。具体的参数设置数值也可以去BAIDU一下。hCom=CreateFile(m_Com,GENERIC_READ|GENERIC_WRITE, //允许读和写0,//独占方式NULL,OPEN_EXISTING, //打开而不是创建0,//同步方式NULL);SetupComm(hCom,100,100);//输入缓冲区和输出缓冲区的大小COMMTIMEOUTS TimeOuts;//设定读超时TimeOuts.ReadIntervalTimeout=MAXDWORD;TimeOuts.ReadTotalTimeoutMultiplier=5; //读取每字符间的超时TimeOuts.ReadTotalTimeoutConstant=100; //一次读取串口数据的固定超时//设定写超时TimeOuts.WriteTotalTimeoutMultiplier=10;TimeOuts.WriteTotalTimeoutConstant=200;SetCommTimeouts(hCom,&TimeOuts); //设置超时// EVENPARITY 偶校验// MARKPARITY 标记校验,所发信息帧第9位恒为1// NOPARITY 无校验// ODDPARITY 奇校验// ONESTOPBIT 1停止位// ONE5STOPBITS 1.5停止位// TWOSTOPBITS 2停止位DCB dcb;GetCommState(hCom,&dcb);//设置串口设置dcb.BaudRate=9600;//波特率dcb.fBinary=TRUE;//指定是否允许二进制模式。Win32 API不支持非二进制模式传输,应设置为truedcb.fParity=TRUE;//指定奇偶校验是否允许,在为true时具体采用何种校验看Parity 设置dcb.ByteSize=8; //每个字节有8位dcb.Parity=NOPARITY;//dcb.StopBits=ONESTOPBIT;//1个停止位PurgeComm(hCom, PURGE_TXCLEAR|PURGE_RXCLEAR); //清除缓冲区

用API函数编写的串口通信,端口打开了,WriteFile总是反回调用失败类型为0;以下是程序,我是新手,谢谢帮

我遇到同样的问题,我用GetLastError()也是返回0,但是写入字节为0.请问你现在解决了吗?如果解决了可以告诉我怎么解决的?

美国电视剧 X档案(the X files)哪里可以下载英文发音,中英双语字幕的?我急求!实在是喜欢这个片子

  迅雷专用高速下载_[FOX][X档案第一季-The.X-Files.Season 1][英语中字][DVD-RMVB].torrent  [FOX][X档案第一季-The.X-Files.Season 1][英语中字][DVD-RMVB].torrent (157.42 KB) 『 查看资源 』  2006-9-20 13:59, 下载次数: 4971  皆为风软版本  迅雷专用高速下载_[FOX][X档案第二季-The.X-Files.Season 2][英语中字][DVD-RMVB].torrent  [FOX][X档案第二季-The.X-Files.Season 2][英语中字][DVD-RMVB].torrent (160.47 KB) 『 查看资源 』  2006-9-20 13:59, 下载次数: 14620  迅雷专用高速下载_[FOX][X档案第三季-The.X-Files.Season 3][英语中字][DVD-RMVB].torrent  [FOX][X档案第三季-The.X-Files.Season 3][英语中字][DVD-RMVB].torrent (95.01 KB) 『 查看资源 』  2006-9-20 13:59, 下载次数: 2517  迅雷专用高速下载_[FOX][X档案第四季-The.X-Files.Season 4][英语中字][DVD-RMVB][FRTVS].torrent  [FOX][X档案第四季-The.X-Files.Season 4][英语中字][DVD-RMVB][FRTVS].torrent (101.33 KB) 『 查看资源 』  2006-9-20 13:59, 下载次数: 2616  迅雷专用高速下载_[FOX][X档案第五季-The.X-Files.Season 5][英语中字][DVD-RMVB][FRTVS].torrent  [FOX][X档案第五季-The.X-Files.Season 5][英语中字][DVD-RMVB][FRTVS].torrent (143.93 KB) 『 查看资源 』  2006-9-20 13:59, 下载次数: 2344  迅雷专用高速下载_[FOX][X档案第六季-The.X-Files.Season 6][英语中字][DVD-RMVB][FRTVS].torrent  [FOX][X档案第六季-The.X-Files.Season 6][英语中字][DVD-RMVB][FRTVS].torrent (157.43 KB) 『 查看资源 』  2006-9-20 13:59, 下载次数: 2394  迅雷专用高速下载_[FOX][X档案第七季-The.X-Files.Season 7][英语中字][DVD-RMVB][FRTVS].torrent  [FOX][X档案第七季-The.X-Files.Season 7][英语中字][DVD-RMVB][FRTVS].torrent (156.27 KB) 『 查看资源 』  2006-9-20 13:59, 下载次数: 2806  迅雷专用高速下载_[FOX][X档案第八季-The.X-Files.Season 8][英语中字][DVD-RMVB][FRTVS].torrent  [FOX][X档案第八季-The.X-Files.Season 8][英语中字][DVD-RMVB][FRTVS].torrent (161.03 KB) 『 查看资源 』  2006-9-20 13:59, 下载次数: 2416  迅雷专用高速下载_[FOX][X档案第九季-The.X-Files.Season 9][英语中字][DVD-RMVB][FRTVS].torrent  [FOX][X档案第九季-The.X-Files.Season 9][英语中字][DVD-RMVB][FRTVS].torrent (141.49 KB) 『 查看资源 』

英语单词:file document dossier 都有档案 文档的意思 其意思区别和用法是如何?

dossier用的比较少 主要表示病例一类意思, document用的比较多,一般是指重要文件,如护照复印件,学校入学或者公司入职办理的一些手续,而file就属于一般文档。

program filesjmesofthotkey.exe 帮我看看这是什么病毒 怎么杀毒

开机 f8 安全模式删除。

warning:file_get_contents()

$url = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=$lati,$longi&rankby=distance&types=food&sensor=false&key=MyGoogleAPIKey"; $lati,$longi 这个逗号

./configure失败 没有生成Makefile这是为什么???

这说明 sdl-config 这个功能你没有安装,然而 这是一个比选的 功能,所以报错

从U盘装WIN7系统出现bad command or file name怎么办?!!!

楼主你好 你这个情况应该是U盘错误才引起的哦建议你用光盘来安装吧就可以解决这个问题了

cool file viewer是什么软件可以卸载吗

如果不需要使用当然可以卸载,cool file viewer是一款多功能文件查看器,支持office、常见的音频、视频、图像、PDF、压缩包等多种文件格式。1.压缩档案   第一步:打开软件后,点击“创建档案”标签。   第二步:用“来源目录”及“输出档案”下的“浏览”按钮,分别设置好要压缩的子目录及压缩文件的保存位置,接着在“设置”项下对压缩率等进行设置,由于我们是要使用最高的压缩比,所以“设置”项下保持默认即可.   第三步:点击“创建档案”按钮,这时就会打开“命令提示符”窗口进行压缩。注意,在压缩过程中最好不要进行其他操作,如果压缩进程暂停,则可按回车键继续。完成后就可以创建扩展名为UHA的文件了。   2.解压缩文件

sql数据还原时,提示错误3242,文件不是有效的Mirosoft磁带格式备份集,Restore Filelist操作异常终止

创建一个新库,还原备份数据库数据文件。还原的时候是选择的“从设备”在还原的时候要注意数据库文件的路径 , 默认是按原数据库的路径的,但是你机器上SQL SERVER的路径可能不同 这就需要手动改路径 1.先选择数据库文件 2.切换到“选项”栏(还原界面有常规 和 选项两栏的) 3.找到“将数据库文件还原为(S)”下的“移至物理文件名”,鼠标单击,直接填写你机器上SQL SERVER数据库文件存放的地址 还原时,再选择“强制还原”。

和prich,SCOFILED 风格类似 的 还有哪些品牌呢?

enc

company profile是什么?company biography呢?

company profile 公司简介company biography 公司传记

iOS #import file not found

这两天跑项目工程时,好端端的项目突然跑不起来了,一直报 #import <Masonry.h> file not found 错误。 问题分析:除了这个 Masonry.h 找不到的错误外,还发现点击所有第三方头文件(如: #import <SDWebImage/UIImageView+WebCache.h> 也无法跳转,即使在敲 #import 时有智能提示),怀疑是 CocoaPods 导致的问题。 解决方法: 点击 YourProject -> Project -> 选中 YourProject -> Info -> Configurations -> 把对应的 Debug 和 Release 里的参数设为 Pods-xxxxxx.Debug / Pods-xxxxxx.Release (这些参数在未设置前应该是 None,可能 CocoaPods 在安装第三方库时没正确设置这个参数)。 重新编译工程,应该能成功了。

unexpected end of file while looking for precompiled header directive 是什么错误啊?

再给点信息好不这样怎么可能知道出了什么事

CPROGRAM FILES......STATIONERY是个什么文件,可以删除吗

C盘不可删文件简介C:Documents and Settings: (32.9MB) 操作系统中用来存放用户配置信息的文件夹C:Driver: (269MB) 系统驱动文件. 译意为: 驾驶员C:Program Files: (37.5MB) 各种Windows XP系统默认程序安装文件夹. 译意为:程序表, 集合C:WINDOWS: (1.13GB) 微软(Microsoft)公司开发的“视窗”操作系统. 译意为:窗口 1.Program FilesCommon Files: (24MB) 操作系统包扩系统程序和应用程序,是应用程序运行库文件. 译意为:公用,集合 2.Program FilesComPlus Applications: (空) 系统文件夹 3.Program FilesInternet Explorer: (965KB) IE网页浏览器. 译意为:(电脑)国际互联网络,勘探者 4.Program Filesmicrosoft frontpage: (0字节) 微软公司推出的网页制作软件 5.Program Filesmovie maker: (空) 系统自带视频编辑软件. 译意为:电影,制作者 6.Program FilesMSN Gaming Zone: (0字节) 系统自带游戏目录. 译意为:微软网络,赌博,地带 7.Program FilesNetMeeting: (空) 系统自带的网上聊天软件. 译意为:网,会面 8.Program FilesOnline Services: (955KB) 一个Internet线上服务提供商 9.Program FilesOutlook Express: (3.96MB) 微软自带的电子邮件. 译意为:看法,快递 10.Program FilesWindows Media Player: (4.47MB) 系统自带播放器 11.Program FilesWindows NT: (862KB) Windows新版32字节操作系统 12.Program FilesWinRAR: (3.18MB) 文件压缩工具 13.Program Filesxerox: (0字节) XP自带的一些图像处理软件作临时空间用. 译意为:复印机

RStudio安装后,打开显示如下窗口,点击file等都没反应,不知为什么?请问怎么解决啊?

RStudio安装后需要更改路径。1、要改的文件的路径在我的电脑是C:UsersskAppDataLocalMicrosoftMSBuildv4.0。2、默认的这个文件是这个样子的。3、改完了是这个样子的。RStudio就有反应了。完成。注意事项:1、Rstudio安装完成以后出现无法进入程序的情况;2、这里可以右键点度击属性,以管理员身份运行前勾上就可以啦;3、studio启动出现code execution error的解决办法;4、这个有两个原因,一个道是R和Rstudio的安装路专径中有中文,另一个是用户名中有中文;5、第一个的解决办法是重装。

CreateFile 函数打开设备失败

2000人的群,名称是VB人生 号148317126,去那里问问

stable stripping and plating profiles在电池中是什么意思

stable stripping and plating profiles稳定的剥离和电镀型材 重点词汇stripping抽锭,脱模,拆模; 剥皮( strip的现在分词 ); 脱光衣服; 折断; 表演脱衣舞plating电镀,被覆金属; 镀( plate的现在分词 ); 为…加设护板; 给…制铅版

Too many open files的四种解决办法

一 单个进程打开文件句柄数过多 二 操作系统打开的文件句柄数过多 三 systemd对该进程进行了限制 四 inotify达到上限. ulimit中的nofile表示单进程可以打开的最大文件句柄数,可以通过ulimit -a查看,子进程默认继承父进程的限制(注意,是继承,不是共享,子进程和父进程打开的文件句柄数是单独算的)。 网上还有一种解读是nofile表示单用户可以打开的文件句柄数,因为他们在limit.conf中看到类似于“openstack soft nofile 65536”,便认为是openstack用户最多可以打开的文件句柄数。该解读是错误的,“openstack soft nofile 65536”表示的含义是当你执行"su - openstack"切换到openstack用户后,你创建的所有进程最大可以打开的文件句柄数是65536。 要查看一个进程可以打开的文件句柄数,可以通过“cat /proc/<pid>/limits”查看。 要修改ulimit中的nofile,可以通过修改/etc/security/limits.conf文件,在其中加入类似“openstack soft nofile 65536”的语句来进行修改。修改完成后,可以通过“su - openstack”切换用户,或者重新登录,来使该配置生效。 要动态修改一个进程的限制,可以使用prlimit命令,具体用法为:“prlimit --pid ${pid} --nofile=102400:102400”。 整个操作系统可以打开的文件句柄数是有限的,受内核参数“fs.file-max”影响。 可以通过执行“echo 100000000 > /proc/sys/fs/file-max”命令来动态修改该值,也可以通过修改"/etc/sysctl.conf"文件来永久修改该值。 该场景仅针对被systemd管理的进程(也就是可以通过systemctl来控制的进程)生效,可以通过修改该进程的service文件(通常在/etc/systemd/system/目录下),在“[Service]”下面添加“LimitNOFILE=20480000”来实现,修改完成之后需要执行"systemctl daemon-reload"来使该配置生效。 inotify是linux提供的一种监控机制,可以监控文件系统的变化。该机制受到2个内核参数的影响:“fs.inotify.max_user_instances”和“fs.inotify.max_user_watches”,其中“fs.inotify.max_user_instances”表示每个用户最多可以创建的inotify instances数量上限,“fs.inotify.max_user_watches”表示么个用户同时可以添加的watch数目,当出现too many open files问题而上面三种方法都无法解决时,可以尝试通过修改这2个内核参数来生效。修改方法是修改"/etc/sysctl.conf"文件,并执行"sysctl -p"。 原文地址: https://www.cnblogs.com/huaweicloud/p/11861475.html

docker commit和docker file的区别

制作镜像的方式主要有两种:通过docker commit 制作镜像通过docker build 制作镜像这两种方式都是通过改进已有的镜像来达到自己的目的。制作基础镜像,会在另外一篇文章“从零开始制作基础镜像”中介绍。docker commitdocker commit 是往版本控制系统里提交一次变更。使用这种方式制作镜像,本质上是运行一个基础镜像,然后在基础镜像上进行软件安装和修改。最后再将改动提交到版本系统中。选择基础镜像基础镜像的选择要结合自己的需求。可以选择已有的应用镜像来改造,也可以选择Ubuntu,Debian,OpenSuse这类基础系统镜像我们以ubuntu为例子来说明步骤1:运行ubuntu 镜像docker run -i -t ubuntu /bin/bash步骤2:安装软件并修改软件配置, 比如:安装apache2apt-get -yqq updateapt-get -y install apache2安装完成后,对apache2进行配置和修改步骤3:退出docker并保存镜像使用“exit”命令退出容器运行docker comit 命令, 进行保存docker commit 61412230ae46 own-apache2docker commit 命令参数说明命令格式docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]OPTIONS:-a, --author= 提交的镜像作者-c, --change=[] Apply Dockerfile instruction to the created image, 没用过-m, --message= 提交时的说明文字-p, --pause=true 在commit时,将container 暂停CONTAINER:可以使用container 的名字或者IDREPOSITORY指定镜像仓库,上述例子中,指定的是本地存储可以指定远程镜像仓库,如docker hub。也可自建仓库来存放imageTAG:镜像TAGdocker build使用docker build创建镜像需要编写Dockerfile.步骤:编写自己的Dcokerfile运行docker build 命令打包镜像仍然以apache打包为例子。以下是Dockerfile的例子FROM ubuntu:latestMAINTAINER sky#Add 163 mirror for aptADD sources.list /etc/apt/sources.listADD .bashrc /root/.bashrcENV DEBIAN_FRONTEND noninteractive# PackagesRUN rm -rf /var/lib/apt/listsRUN apt-get update -q --fix-missingRUN apt-get -y upgrade#ubuntu wwwRUN apt-get install -y apache2 curl libapache2-mod-php5 php5-curl php5-gd php5-mysql rsync mysql-client -qqRUN apt-get autocleanRUN rm -rf /var/lib/apt/lists/*# Setup environmnt for apache"s init scriptENV APACHE_CONFDIR /etc/apache2ENV APACHE_ENVVARS $APACHE_CONFDIR/envvarsENV APACHE_RUN_USER www-dataENV APACHE_RUN_GROUP www-dataENV APACHE_RUN_DIR /var/run/apache2ENV APACHE_PID_FILE $APACHE_RUN_DIR/apache2.pidENV APACHE_LOCK_DIR /var/lock/apache2ENV APACHE_LOG_DIR /var/log/apache2ENV LANG CRUN mkdir -p $APACHE_RUN_DIR $APACHE_LOCK_DIR $APACHE_LOG_DIRRUN find "$APACHE_CONFDIR" -type f -exec sed -ri " s!^(s*CustomLog)s+S+!1 /proc/self/fd/1!g; s!^(s*ErrorLog)s+S+!1 /proc/self/fd/2!g; " "{}" ";"EXPOSE 80CMD ["apache2", "-DFOREGROUND"]编辑完成后,在与Dockerfile同一目录下运行docker build 命令docker build -t apache-img .如果没有命令出错,docker build会持续运行直到镜像创建完成而创建的过程本质上是运行一个镜像,然后在镜像中按序执行在Dockerfile中的命令,直到执行结束。如果中间有命令执行失败,镜像创建会停止。这时就需要看log,并修改Dockerfile,然后再次执行docker build注:两种镜像创建方式的对比:docker commitdocker build难度相对容易,适合新手和对Linux不熟悉的用户相对难,要求有一定的linux和脚本基础知识文档化文档化在通过其他文件来实现Dockerfile本身就是比较好的文档,可读和可理解性比较强。也可配合其他文档带来详细说明升级,维护后续升级和维护麻烦,需要再次运行镜像并对内部软件进行升级或者安装新软件增加特性后续升级和维护会相对简单,可以直接在dockerfile中更改并增加新特性具体选择哪种方式来制作镜像需要结合实际情况来选择Dockerfile 关键字详解FROMFROM用来指定基础包。在上面的例子中,基础包用的是ubuntu。MAINTAINER镜像作者信息,或者维护人员信息ADD将文件拷贝到Container内文件系统对应的路径格式 ADD <src file> <dst file>所有拷贝到Container中的文件和文件夹权限为0755,uid和gid为0如果需要修改owner用户或者权限,需要使用RUN进行修改ADD文件,文件路径要在docker build<PATH>中指定的<PATH>下RUN创建镜像时执行ENV用来设置环境变量EXPOSEContainer内部服务开启的端口主机上如果要使用,还需要在启动Container时,做host-container的商品映射使用EXPOSE后,一些自动化布署工具可以直接读取这个信息,自动进行端口映射EXPOSE可以有多条,指定多个端口WORKDIR切换工作目录,可进行多次切换(相当于cd命令)切换目录对RUN,CMD,ENTRYPOINT有效USER执行container的用户,如未指定,则默认使用root用户ENTRYPOINTContainer启动时执行的命令,一个Dockerfile中只能有一条ENTRYPOINTENTRYPOINT没有CMD的可替换特性CMDContainer 启动时执行的命令,一个Dockerfile 中只能有一条CMD命令,如果有多条则只执行最后一条CMD如果有多条命令希望在启动后执行,可以考虑使用shell 脚本与ENTRYPOINT的区别CMD的主要用途是为可执行的container提供默认命令CMD在运行时是可替换的,比如在ubuntu中,CMD指定的是/bin/bash。默认情况下运行ubuntu,container中的/bin/bash会被执行如果使用docker run指定运行命令,那CMD会被替换掉如:docker run ubuntu /bin/echo "this is a echo". 这时,container 启动后会执行echo 而不是/bin/bash了ENTRYPOINT是不会替换的,如果在ubuntu镜像中加入ENTRYPOINT,那ENTRYPOINT在启动后会先被执行CMD可以为ENTRYPOINT来提供参数例子:FROM ubuntu:14.10 ENTRYPOINT ["top", "-b"] CMD ["-c"]VOLUME语法:VOLUME [PATH]VOLUME指令用来设置一个挂载点,可以用来让其他容器挂载以实现数据共享或对容器数据的备份、恢复或迁移可以将本地文件夹或者其他Container的文件夹挂载到Container中

怎么关闭dockerfile里面expose的端口

看dockerfile:FROMalpine:latestMAINTAINERalexalexwhen@gmail.comRUNapk--updateaddnginxCOPY./usr/share/nginx/htmlEXPOSE80CMD[“nginx”,“-g”,“daemonoff;”]极简化的利用dockerfile和base镜像和github的特性,能少一句就少一句,动动手试一下,这样build出来,整个镜像不超过10M,回过头来看看前面的镜像,光一个ubuntu得多大啊,实在是居家必备。

如何使用Dockerfile构建镜像

你好,使用方法如下:Dockerfile结构dockerfile由4部分信息组成:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。123456789101112131415161718 # This dockerfile uses the ubuntu image# VERSION 2 - EDITION 1# Author: docker_user# Command format: Instruction [arguments / command] .. # Base image to use, this must be set as the first lineFROM ubuntu # Maintainer: docker_user <docker_user at email.com> (@docker_user)MAINTAINER docker_user docker_user@email.com # Commands to update the imageRUN echo "deb http://archive.ubuntu.com/ubuntu/ raring main universe" >> /etc/apt/sources.listRUN apt-get update && apt-get install -y nginxRUN echo " daemon off;" >> /etc/nginx/nginx.conf # Commands when creating a new containerCMD /usr/sbin/nginx其中#表注释,可以标注一些说明性的文字。FROM关键字指定镜像的来源,默认为DockerHub,也可以写私有仓库的镜像,例如:localhost:5000/centos:6.7,如果本地已经存在指定的镜像名称,则会从本地缓存直接获取。MAINTAINER 指定镜像的作者,之后为镜像操作执行RUN、ADD等,最后是容器启动时发起的指令。Dockerfile中的指令FROM: 指定镜像名称,格式为FROM <image> 或FROM <image>:<tag>,例如FROM ubuntu 或 FROM ubuntu:12.04 MAINTAINER: 镜像作者 ,格式为 MAINTAINER <name>RUN:格式为 RUN <command> 或 RUN ["executable", "param1", "param2"]。前者将在 shell 终端中运行命令,即 /bin/sh -c;后者则使用 exec 执行。指定使用其它终端可以通过第二种方式实现,例如 RUN ["/bin/bash", "-c", "echo hello"]。每条 RUN 指令将在当前镜像基础上执行指定命令,并提交为新的镜像。当命令较长时可以使用 来换行。CMD:支持三种格式  1.CMD ["executable","param1","param2"] 使用 exec 执行,推荐方式;  2.CMD command param1 param2 在 /bin/sh 中执行,提供给需要交互的应用;  3.CMD ["param1","param2"] 提供给 ENTRYPOINT 的默认参数;指定启动容器时执行的命令,每个 Dockerfile 只能有一条 CMD 命令。如果指定了多条命令,只有最后一条会被执行。如果用户启动容器时候指定了运行的命令,则会覆盖掉 CMD 指定的命令。EXPOSE:格式为 EXPOSE <port> [<port>...]。告诉 Docker 服务端容器暴露的端口号,供互联系统使用。在启动容器时需要通过 -P,Docker 主机会自动分配一个端口转发到指定的端口。ENV:格式为 ENV <key> <value>。 指定一个环境变量,会被后续 RUN 指令使用,并在容器运行时保持。这就对应程序语言中的变量定义,可在需要的时候引用。例如:1234 ENV PG_MAJOR 9.3ENV PG_VERSION 9.3.4RUN curl -SL http://example.com/postgres-$PG_VERSION.tar.xz | tar -xJC /usr/src/postgress && …ENV PATH /usr/local/postgres-$PG_MAJOR/bin:$PATHADD:格式为 ADD <src> <dest>。该命令将复制指定的 <src> 到容器中的 <dest>。 其中 <src> 可以是Dockerfile所在目录的一个相对路径;也可以是一个 URL;还可以是一个 tar 文件(自动解压为目录)。COPY:格式为 COPY <src> <dest>。复制本地主机的 <src>(为 Dockerfile 所在目录的相对路径)到容器中的 <dest>。当使用本地目录为源目录时,推荐使用 COPY。COPY和ADD的不同就是:ADD多了自动解压和支持URL路径的功能。ENTRYPOINT:两种格式:ENTRYPOINT ["executable", "param1", "param2"]ENTRYPOINT command param1 param2(shell中执行)。配置容器启动后执行的命令,并且不可被 docker run 提供的参数覆盖。每个 Dockerfile 中只能有一个 ENTRYPOINT,当指定多个时,只有最后一个起效。CMD和ENTRYPOINT比较:两个命令都是只能使用一次,并且都是在执行docker run指令时运行,如果有多个,只执行最后一条。两者的不同在于参数的传递方式,如果在Dockerfile中定义如下指令1 CMD echo hello或1 ENTRYPOINT ["echo","hello"] 那么在运行命令docker run containerId echo hello时,指定了CMD的输入结果为world,可以看出Dockerfile中指定的命令被覆盖了,而指定了ENTRYPOINT时,输出结果为hello echo world,可以看出指定的命令被作为ENTRYPOINT指定指令的参数了。 VOLUME:格式为 VOLUME ["/data"]。创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等。不过此属性在Dockerfile中指定并没有什么意义,因为没有办法指定本地主机的目录。如果需要指定挂载点可以在执行docker run命令时指定:1 docker run -it -v /home/fengzheng/ftp/:/data 859666d51c6d /bin/bashUSER:格式为 USER daemon。指定运行容器时的用户名或 UID,后续的 RUN 也会使用指定用户。当服务不需要管理员权限时,可以通过该命令指定运行用户。并且可以在之前创建所需要的用户,例如:RUN groupadd -r postgres && useradd -r -g postgres postgres。要临时获取管理员权限可以使用 gosu,而不推荐 sudo。WORKDIR:格式为 WORKDIR /path/to/workdir。为后续的 RUN、CMD、ENTRYPOINT 指令配置工作目录。可以使用多个 WORKDIR 指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。例如1234 WORKDIR /aWORKDIR bWORKDIR cRUN pwd则最终路径为 /a/b/c。ONBUILD:格式为 ONBUILD [INSTRUCTION]。配置当所创建的镜像作为其它新创建镜像的基础镜像时,所执行的操作指令。例如,Dockerfile 使用如下的内容创建了镜像 image-A。1234 [...]ONBUILD ADD . /app/srcONBUILD RUN /usr/local/bin/python-build --dir /app/src[...]如果基于 image-A 创建新的镜像时,新的Dockerfile中使用 FROM image-A指定基础镜像时,会自动执行ONBUILD 指令内容,等价于在后面添加了两条指令。12345 FROM image-A #Automatically run the followingADD . /app/srcRUN /usr/local/bin/python-build --dir /app/src使用 ONBUILD 指令的镜像,推荐在标签中注明,例如 ruby:1.9-onbuild。基于CentOS6.7并源码安装nginx首先准备了nginx-1.9.9.tar.gz安装包和CentOS6-Base-163.repo(163源),将这两个文件放到同一目录下,并在此目录下创建名称为Dockerfile的文件。之后在此文件中实现源替换、nginx编译安装、及一些依赖包的安装,Dockerfile内容如下:12345678910111213141516171819202122232425262728293031 # this is a test ubuntu 12.04 image dockerfile# Author:fengzheng # Base image,this must be set as the first line#localhost:5000/centos:6.7是我的私有仓库的镜像,可替换为centos:6.7(DockerHub中的镜像)FROM localhost:5000/centos:6.7 MAINTAINER fengzheng # Commands to update the image RUN mkdir /usr/nginx1.9.9ADD nginx-1.9.9.tar.gz /usr/nginx1.9.9/#RUN yum -y install tar#RUN tar -zxvf /usr/nginx1.9.9/nginx-1.9.9.tar.gzRUN cd /etc/yum.repos.d/ && mv CentOS-Base.repo CentOS-Base.repo.bakADD CentOS6-Base-163.repo /etc/yum.repos.d/RUN cd /etc/yum.repos.d/ && mv CentOS6-Base-163.repo CentOS-Base.repo && yum clean all && yum makecache && yum -y install gcc && yum -y install yum install -y pcre-devel && yum -y install zlib zlib-devel && yum -y install openssl openssl--devel && cd /usr/nginx1.9.9/nginx-1.9.9/ && ./configure && make && make install #如果设置daemon off; nginx无法启动#RUN echo " daemon off;" >> /etc/nginx/nginx.conf # Commands when creating a new container# 启动nginx 需进入/usr/local/nginx/sbin 执行./configureCMD /bin/bash最后执行命令"docker build -t nginx-centos:6.7 ."其中.表示在当前目录下搜索Dockerfile文件,-t参数指定镜像名称和tag。

在linux下安装ipmsg(2ipmsg-0.9.1.tar.gz), make时,提示没有Makefile,寻求解决办法?

确认一下有没有正确解压,然后看看Makefile是不是确实没有The simplest way to compile this package is: 1. `cd" to the directory containing the package"s source code and type `./configure" to configure the package for your system. If you"re using `csh" on an old version of System V, you might need to type `sh ./configure" instead to prevent `csh" from trying to execute `configure" itself. Running `configure" takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make" to compile the package. 3. Optionally, type `make check" to run any self-tests that come with the package. 4. Type `make install" to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean". To also remove the files that `configure" created (so you can compile the package for a different kind of computer), type `make distclean". There is also a `make maintainer-clean" target, but that is intended mainly for the package"s developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution.看那里面的INSTALL文件

如何用Dockerfile创建镜像

创建镜像的目的首先说DockerHub或其它一些镜像仓库已经提供了够多的镜像,有最小版本,也有一些安装了mysql、nginx、apache等等第三方软件的版本可以直接拿来使用。虽然已经足够多了,但是有些情况下并不能满足我们的需求,例如需要安装一些比较少用到的第三方软件,这个时候只能先用公共仓库中的镜像,启动容器,然后在容器中按照我们的需求安装软件,修改配置等等操作,之后提交镜像。这些操作在之前的文章中介绍了。这样操作完成之后,可以用如下两种方式实现定制镜像的目的:1.用save和export的方式将镜像保存为tar包,然后在需要的时候导入tar镜像包2.将已经配置好的镜像push到我们的私有仓库(docker创建私有仓库)或者已注册过的共有仓库中,需要的时候直接pull下来使用这两种方式都可以,但是自动化程度低、自由度不够、定制起来比较麻烦。既然如此,那就来说一下更加自动化的创建方式。Dockerfile结构dockerfile由4部分信息组成:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。123456789101112131415161718 # This dockerfile uses the ubuntu image# VERSION 2 - EDITION 1# Author: docker_user# Command format: Instruction [arguments / command] .. # Base image to use, this must be set as the first lineFROM ubuntu # Maintainer: docker_user <docker_user at email.com> (@docker_user)MAINTAINER docker_user docker_user@email.com # Commands to update the imageRUN echo "deb http://archive.ubuntu.com/ubuntu/ raring main universe" >> /etc/apt/sources.listRUN apt-get update && apt-get install -y nginxRUN echo " daemon off;" >> /etc/nginx/nginx.conf # Commands when creating a new containerCMD /usr/sbin/nginx其中#表注释,可以标注一些说明性的文字。FROM关键字指定镜像的来源,默认为DockerHub,也可以写私有仓库的镜像,例如:localhost:5000/centos:6.7,如果本地已经存在指定的镜像名称,则会从本地缓存直接获取。MAINTAINER 指定镜像的作者,之后为镜像操作执行RUN、ADD等,最后是容器启动时发起的指令。Dockerfile中的指令FROM: 指定镜像名称,格式为FROM <image> 或FROM <image>:<tag>,例如FROM ubuntu 或 FROM ubuntu:12.04 MAINTAINER: 镜像作者 ,格式为 MAINTAINER <name>RUN:格式为 RUN <command> 或 RUN ["executable", "param1", "param2"]。前者将在 shell 终端中运行命令,即 /bin/sh -c;后者则使用 exec 执行。指定使用其它终端可以通过第二种方式实现,例如 RUN ["/bin/bash", "-c", "echo hello"]。每条 RUN 指令将在当前镜像基础上执行指定命令,并提交为新的镜像。当命令较长时可以使用 来换行。CMD:支持三种格式  1.CMD ["executable","param1","param2"] 使用 exec 执行,推荐方式;  2.CMD command param1 param2 在 /bin/sh 中执行,提供给需要交互的应用;  3.CMD ["param1","param2"] 提供给 ENTRYPOINT 的默认参数;指定启动容器时执行的命令,每个 Dockerfile 只能有一条 CMD 命令。如果指定了多条命令,只有最后一条会被执行。如果用户启动容器时候指定了运行的命令,则会覆盖掉 CMD 指定的命令。EXPOSE:格式为 EXPOSE <port> [<port>...]。告诉 Docker 服务端容器暴露的端口号,供互联系统使用。在启动容器时需要通过 -P,Docker 主机会自动分配一个端口转发到指定的端口。ENV:格式为 ENV <key> <value>。 指定一个环境变量,会被后续 RUN 指令使用,并在容器运行时保持。这就对应程序语言中的变量定义,可在需要的时候引用。例如:1234 ENV PG_MAJOR 9.3ENV PG_VERSION 9.3.4RUN curl -SL http://example.com/postgres-$PG_VERSION.tar.xz | tar -xJC /usr/src/postgress && …ENV PATH /usr/local/postgres-$PG_MAJOR/bin:$PATHADD:格式为 ADD <src> <dest>。该命令将复制指定的 <src> 到容器中的 <dest>。 其中 <src> 可以是Dockerfile所在目录的一个相对路径;也可以是一个 URL;还可以是一个 tar 文件(自动解压为目录)。COPY:格式为 COPY <src> <dest>。复制本地主机的 <src>(为 Dockerfile 所在目录的相对路径)到容器中的 <dest>。当使用本地目录为源目录时,推荐使用 COPY。COPY和ADD的不同就是:ADD多了自动解压和支持URL路径的功能。ENTRYPOINT:两种格式:ENTRYPOINT ["executable", "param1", "param2"]ENTRYPOINT command param1 param2(shell中执行)。配置容器启动后执行的命令,并且不可被 docker run 提供的参数覆盖。每个 Dockerfile 中只能有一个 ENTRYPOINT,当指定多个时,只有最后一个起效。CMD和ENTRYPOINT比较:两个命令都是只能使用一次,并且都是在执行docker run指令时运行,如果有多个,只执行最后一条。两者的不同在于参数的传递方式,如果在Dockerfile中定义如下指令1 CMD echo hello或1 ENTRYPOINT ["echo","hello"] 那么在运行命令docker run containerId echo hello时,指定了CMD的输入结果为world,可以看出Dockerfile中指定的命令被覆盖了,而指定了ENTRYPOINT时,输出结果为hello echo world,可以看出指定的命令被作为ENTRYPOINT指定指令的参数了。 VOLUME:格式为 VOLUME ["/data"]。创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等。不过此属性在Dockerfile中指定并没有什么意义,因为没有办法指定本地主机的目录。如果需要指定挂载点可以在执行docker run命令时指定:1 docker run -it -v /home/fengzheng/ftp/:/data 859666d51c6d /bin/bashUSER:格式为 USER daemon。指定运行容器时的用户名或 UID,后续的 RUN 也会使用指定用户。当服务不需要管理员权限时,可以通过该命令指定运行用户。并且可以在之前创建所需要的用户,例如:RUN groupadd -r postgres && useradd -r -g postgres postgres。要临时获取管理员权限可以使用 gosu,而不推荐 sudo。WORKDIR:格式为 WORKDIR /path/to/workdir。为后续的 RUN、CMD、ENTRYPOINT 指令配置工作目录。可以使用多个 WORKDIR 指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。例如1234 WORKDIR /aWORKDIR bWORKDIR cRUN pwd则最终路径为 /a/b/c。ONBUILD:格式为 ONBUILD [INSTRUCTION]。配置当所创建的镜像作为其它新创建镜像的基础镜像时,所执行的操作指令。例如,Dockerfile 使用如下的内容创建了镜像 image-A。1234 [...]ONBUILD ADD . /app/srcONBUILD RUN /usr/local/bin/python-build --dir /app/src[...]如果基于 image-A 创建新的镜像时,新的Dockerfile中使用 FROM image-A指定基础镜像时,会自动执行ONBUILD 指令内容,等价于在后面添加了两条指令。12345 FROM image-A #Automatically run the followingADD . /app/srcRUN /usr/local/bin/python-build --dir /app/src使用 ONBUILD 指令的镜像,推荐在标签中注明,例如 ruby:1.9-onbuild。基于CentOS6.7并源码安装nginx首先准备了nginx-1.9.9.tar.gz安装包和CentOS6-Base-163.repo(163源),将这两个文件放到同一目录下,并在此目录下创建名称为Dockerfile的文件。之后在此文件中实现源替换、nginx编译安装、及一些依赖包的安装,Dockerfile内容如下:12345678910111213141516171819202122232425262728293031 # this is a test ubuntu 12.04 image dockerfile# Author:fengzheng # Base image,this must be set as the first line#localhost:5000/centos:6.7是我的私有仓库的镜像,可替换为centos:6.7(DockerHub中的镜像)FROM localhost:5000/centos:6.7 MAINTAINER fengzheng # Commands to update the image RUN mkdir /usr/nginx1.9.9ADD nginx-1.9.9.tar.gz /usr/nginx1.9.9/#RUN yum -y install tar#RUN tar -zxvf /usr/nginx1.9.9/nginx-1.9.9.tar.gzRUN cd /etc/yum.repos.d/ && mv CentOS-Base.repo CentOS-Base.repo.bakADD CentOS6-Base-163.repo /etc/yum.repos.d/RUN cd /etc/yum.repos.d/ && mv CentOS6-Base-163.repo CentOS-Base.repo && yum clean all && yum makecache && yum -y install gcc && yum -y install yum install -y pcre-devel && yum -y install zlib zlib-devel && yum -y install openssl openssl--devel && cd /usr/nginx1.9.9/nginx-1.9.9/ && ./configure && make && make install #如果设置daemon off; nginx无法启动#RUN echo " daemon off;" >> /etc/nginx/nginx.conf # Commands when creating a new container# 启动nginx 需进入/usr/local/nginx/sbin 执行./configureCMD /bin/bash最后执行命令"docker build -t nginx-centos:6.7 ."其中.表示在当前目录下搜索Dockerfile文件,-t参数指定镜像名称和tag。

如何用Dockerfile创建镜像

Dockerfile结构dockerfile由4部分信息组成:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。123456789101112131415161718 # This dockerfile uses the ubuntu image# VERSION 2 - EDITION 1# Author: docker_user# Command format: Instruction [arguments / command] .. # Base image to use, this must be set as the first lineFROM ubuntu # Maintainer: docker_user <docker_user at email.com> (@docker_user)MAINTAINER docker_user docker_user@email.com # Commands to update the imageRUN echo "deb http://archive.ubuntu.com/ubuntu/ raring main universe" >> /etc/apt/sources.listRUN apt-get update && apt-get install -y nginxRUN echo " daemon off;" >> /etc/nginx/nginx.conf # Commands when creating a new containerCMD /usr/sbin/nginx其中#表注释,可以标注一些说明性的文字。FROM关键字指定镜像的来源,默认为DockerHub,也可以写私有仓库的镜像,例如:localhost:5000/centos:6.7,如果本地已经存在指定的镜像名称,则会从本地缓存直接获取。MAINTAINER 指定镜像的作者,之后为镜像操作执行RUN、ADD等,最后是容器启动时发起的指令。Dockerfile中的指令FROM: 指定镜像名称,格式为FROM <image> 或FROM <image>:<tag>,例如FROM ubuntu 或 FROM ubuntu:12.04 MAINTAINER: 镜像作者 ,格式为 MAINTAINER <name>RUN:格式为 RUN <command> 或 RUN ["executable", "param1", "param2"]。前者将在 shell 终端中运行命令,即 /bin/sh -c;后者则使用 exec 执行。指定使用其它终端可以通过第二种方式实现,例如 RUN ["/bin/bash", "-c", "echo hello"]。每条 RUN 指令将在当前镜像基础上执行指定命令,并提交为新的镜像。当命令较长时可以使用 来换行。CMD:支持三种格式  1.CMD ["executable","param1","param2"] 使用 exec 执行,推荐方式;  2.CMD command param1 param2 在 /bin/sh 中执行,提供给需要交互的应用;  3.CMD ["param1","param2"] 提供给 ENTRYPOINT 的默认参数;指定启动容器时执行的命令,每个 Dockerfile 只能有一条 CMD 命令。如果指定了多条命令,只有最后一条会被执行。如果用户启动容器时候指定了运行的命令,则会覆盖掉 CMD 指定的命令。EXPOSE:格式为 EXPOSE <port> [<port>...]。告诉 Docker 服务端容器暴露的端口号,供互联系统使用。在启动容器时需要通过 -P,Docker 主机会自动分配一个端口转发到指定的端口。ENV:格式为 ENV <key> <value>。 指定一个环境变量,会被后续 RUN 指令使用,并在容器运行时保持。这就对应程序语言中的变量定义,可在需要的时候引用。例如:1234 ENV PG_MAJOR 9.3ENV PG_VERSION 9.3.4RUN curl -SL http://example.com/postgres-$PG_VERSION.tar.xz | tar -xJC /usr/src/postgress && …ENV PATH /usr/local/postgres-$PG_MAJOR/bin:$PATHADD:格式为 ADD <src> <dest>。该命令将复制指定的 <src> 到容器中的 <dest>。 其中 <src> 可以是Dockerfile所在目录的一个相对路径;也可以是一个 URL;还可以是一个 tar 文件(自动解压为目录)。COPY:格式为 COPY <src> <dest>。复制本地主机的 <src>(为 Dockerfile 所在目录的相对路径)到容器中的 <dest>。当使用本地目录为源目录时,推荐使用 COPY。COPY和ADD的不同就是:ADD多了自动解压和支持URL路径的功能。ENTRYPOINT:两种格式:ENTRYPOINT ["executable", "param1", "param2"]ENTRYPOINT command param1 param2(shell中执行)。配置容器启动后执行的命令,并且不可被 docker run 提供的参数覆盖。每个 Dockerfile 中只能有一个 ENTRYPOINT,当指定多个时,只有最后一个起效。CMD和ENTRYPOINT比较:两个命令都是只能使用一次,并且都是在执行docker run指令时运行,如果有多个,只执行最后一条。两者的不同在于参数的传递方式,如果在Dockerfile中定义如下指令1 CMD echo hello或1 ENTRYPOINT ["echo","hello"] 那么在运行命令docker run containerId echo hello时,指定了CMD的输入结果为world,可以看出Dockerfile中指定的命令被覆盖了,而指定了ENTRYPOINT时,输出结果为hello echo world,可以看出指定的命令被作为ENTRYPOINT指定指令的参数了。 VOLUME:格式为 VOLUME ["/data"]。创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等。不过此属性在Dockerfile中指定并没有什么意义,因为没有办法指定本地主机的目录。如果需要指定挂载点可以在执行docker run命令时指定:1 docker run -it -v /home/fengzheng/ftp/:/data 859666d51c6d /bin/bashUSER:格式为 USER daemon。指定运行容器时的用户名或 UID,后续的 RUN 也会使用指定用户。当服务不需要管理员权限时,可以通过该命令指定运行用户。并且可以在之前创建所需要的用户,例如:RUN groupadd -r postgres && useradd -r -g postgres postgres。要临时获取管理员权限可以使用 gosu,而不推荐 sudo。WORKDIR:格式为 WORKDIR /path/to/workdir。为后续的 RUN、CMD、ENTRYPOINT 指令配置工作目录。可以使用多个 WORKDIR 指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。例如1234 WORKDIR /aWORKDIR bWORKDIR cRUN pwd则最终路径为 /a/b/c。ONBUILD:格式为 ONBUILD [INSTRUCTION]。配置当所创建的镜像作为其它新创建镜像的基础镜像时,所执行的操作指令。例如,Dockerfile 使用如下的内容创建了镜像 image-A。1234 [...]ONBUILD ADD . /app/srcONBUILD RUN /usr/local/bin/python-build --dir /app/src[...]如果基于 image-A 创建新的镜像时,新的Dockerfile中使用 FROM image-A指定基础镜像时,会自动执行ONBUILD 指令内容,等价于在后面添加了两条指令。12345 FROM image-A #Automatically run the followingADD . /app/srcRUN /usr/local/bin/python-build --dir /app/src使用 ONBUILD 指令的镜像,推荐在标签中注明,例如 ruby:1.9-onbuild。基于CentOS6.7并源码安装nginx首先准备了nginx-1.9.9.tar.gz安装包和CentOS6-Base-163.repo(163源),将这两个文件放到同一目录下,并在此目录下创建名称为Dockerfile的文件。之后在此文件中实现源替换、nginx编译安装、及一些依赖包的安装,Dockerfile内容如下:12345678910111213141516171819202122232425262728293031 # this is a test ubuntu 12.04 image dockerfile# Author:fengzheng # Base image,this must be set as the first line#localhost:5000/centos:6.7是我的私有仓库的镜像,可替换为centos:6.7(DockerHub中的镜像)FROM localhost:5000/centos:6.7 MAINTAINER fengzheng # Commands to update the image RUN mkdir /usr/nginx1.9.9ADD nginx-1.9.9.tar.gz /usr/nginx1.9.9/#RUN yum -y install tar#RUN tar -zxvf /usr/nginx1.9.9/nginx-1.9.9.tar.gzRUN cd /etc/yum.repos.d/ && mv CentOS-Base.repo CentOS-Base.repo.bakADD CentOS6-Base-163.repo /etc/yum.repos.d/RUN cd /etc/yum.repos.d/ && mv CentOS6-Base-163.repo CentOS-Base.repo && yum clean all && yum makecache && yum -y install gcc && yum -y install yum install -y pcre-devel && yum -y install zlib zlib-devel && yum -y install openssl openssl--devel && cd /usr/nginx1.9.9/nginx-1.9.9/ && ./configure && make && make install #如果设置daemon off; nginx无法启动#RUN echo " daemon off;" >> /etc/nginx/nginx.conf # Commands when creating a new container# 启动nginx 需进入/usr/local/nginx/sbin 执行./configureCMD /bin/bash最后执行命令"docker build -t nginx-centos:6.7 ."其中.表示在当前目录下搜索Dockerfile文件,-t参数指定镜像名称和tag。

Dockerfile中ENTRYPOINT 和 CMD的区别

Dockerfile结构dockerfile由4部分信息组成:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。123456789101112131415161718# This dockerfile uses the ubuntu image# VERSION 2 - EDITION 1# Author: docker_user# Command format: Instruction [arguments / command] ..# Base image to use, this must be set as the first lineFROM ubuntu# Maintainer: docker_user (@docker_user)MAINTAINER docker_user docker_user@email.com# Commands to update the imageRUN echo "deb raring main universe" >> /etc/apt/sources.listRUN apt-get update && apt-get install -y nginxRUN echo " daemon off;" >> /etc/nginx/nginx.conf# Commands when creating a new containerCMD /usr/sbin/nginx其中#表注释,可以标注一些说明性的文字。FROM关键字指定镜像的来源,默认为DockerHub,也可以写私有仓库的镜像,例如:localhost:5000/centos:6.7,如果本地已经存在指定的镜像名称,则会从本地缓存直接获取。MAINTAINER 指定镜像的作者,之后为镜像操作执行RUN、ADD等,最后是容器启动时发起的指令。Dockerfile中的指令FROM: 指定镜像名称,格式为FROM 或FROM :,例如FROM ubuntu 或 FROM ubuntu:12.04 MAINTAINER: 镜像作者 ,格式为 MAINTAINER RUN:格式为 RUN 或 RUN ["executable", "param1", "param2"]。前者将在 shell 终端中运行命令,即 /bin/sh -c;后者则使用 exec 执行。指定使用其它终端可以通过第二种方式实现,例如 RUN ["/bin/bash", "-c", "echo hello"]。每条 RUN 指令将在当前镜像基础上执行指定命令,并提交为新的镜像。当命令较长时可以使用 来换行。CMD:支持三种格式  1.CMD ["executable","param1","param2"] 使用 exec 执行,推荐方式;  2.CMD command param1 param2 在 /bin/sh 中执行,提供给需要交互的应用;  3.CMD ["param1","param2"] 提供给 ENTRYPOINT 的默认参数;指定启动容器时执行的命令,每个 Dockerfile 只能有一条 CMD 命令。如果指定了多条命令,只有最后一条会被执行。如果用户启动容器时候指定了运行的命令,则会覆盖掉 CMD 指定的命令。EXPOSE:格式为 EXPOSE [...]。告诉 Docker 服务端容器暴露的端口号,供互联系统使用。在启动容器时需要通过 -P,Docker 主机会自动分配一个端口转发到指定的端口。ENV:格式为 ENV 。 指定一个环境变量,会被后续 RUN 指令使用,并在容器运行时保持。这就对应程序语言中的变量定义,可在需要的时候引用。例如:1234ENV PG_MAJOR 9.3ENV PG_VERSION 9.3.4RUN curl -SL | tar -xJC /usr/src/postgress && …ENV PATH /usr/local/postgres-$PG_MAJOR/bin:$PATHADD:格式为 ADD 。该命令将复制指定的 到容器中的 。 其中 可以是Dockerfile所在目录的一个相对路径;也可以是一个 URL;还可以是一个 tar 文件(自动解压为目录)。COPY:格式为 COPY 。复制本地主机的 (为 Dockerfile 所在目录的相对路径)到容器中的 。当使用本地目录为源目录时,推荐使用 COPY。COPY和ADD的不同就是:ADD多了自动解压和支持URL路径的功能。ENTRYPOINT:两种格式:ENTRYPOINT ["executable", "param1", "param2"]ENTRYPOINT command param1 param2(shell中执行)。配置容器启动后执行的命令,并且不可被 docker run 提供的参数覆盖。每个 Dockerfile 中只能有一个 ENTRYPOINT,当指定多个时,只有最后一个起效。CMD和ENTRYPOINT比较:两个命令都是只能使用一次,并且都是在执行docker run指令时运行,如果有多个,只执行最后一条。两者的不同在于参数的传递方式,如果在Dockerfile中定义如下指令1CMD echo hello或1ENTRYPOINT ["echo","hello"] 那么在运行命令docker run containerId echo hello时,指定了CMD的输入结果为world,可以看出Dockerfile中指定的命令被覆盖了,而指定了ENTRYPOINT时,输出结果为hello echo world,可以看出指定的命令被作为ENTRYPOINT指定指令的参数了。VOLUME:格式为 VOLUME ["/data"]。创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等。不过此属性在Dockerfile中指定并没有什么意义,因为没有办法指定本地主机的目录。如果需要指定挂载点可以在执行docker run命令时指定:1docker run -it -v /home/fengzheng/ftp/:/data 859666d51c6d /bin/bashUSER:格式为 USER daemon。指定运行容器时的用户名或 UID,后续的 RUN 也会使用指定用户。当服务不需要管理员权限时,可以通过该命令指定运行用户。并且可以在之前创建所需要的用户,例如:RUN groupadd -r postgres && useradd -r -g postgres postgres。要临时获取管理员权限可以使用 gosu,而不推荐 sudo。WORKDIR:格式为 WORKDIR /path/to/workdir。为后续的 RUN、CMD、ENTRYPOINT 指令配置工作目录。可以使用多个 WORKDIR 指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。例如1234WORKDIR /aWORKDIR bWORKDIR cRUN pwd则最终路径为 /a/b/c。ONBUILD:格式为 ONBUILD [INSTRUCTION]。配置当所创建的镜像作为其它新创建镜像的基础镜像时,所执行的操作指令。例如,Dockerfile 使用如下的内容创建了镜像 image-A。1234[...]ONBUILD ADD . /app/srcONBUILD RUN /usr/local/bin/python-build --dir /app/src[...]如果基于 image-A 创建新的镜像时,新的Dockerfile中使用 FROM image-A指定基础镜像时,会自动执行ONBUILD 指令内容,等价于在后面添加了两条指令。12345FROM image-A#Automatically run the followingADD . /app/srcRUN /usr/local/bin/python-build --dir /app/src使用 ONBUILD 指令的镜像,推荐在标签中注明,例如 ruby:1.9-onbuild。基于CentOS6.7并源码安装nginx首先准备了nginx-1.9.9.tar.gz安装包和CentOS6-Base-163.repo(163源),将这两个文件放到同一目录下,并在此目录下创建名称为Dockerfile的文件。之后在此文件中实现源替换、nginx编译安装、及一些依赖包的安装,Dockerfile内容如下:12345678910111213141516171819202122232425262728293031# this is a test ubuntu 12.04 image dockerfile# Author:fengzheng# Base image,this must be set as the first line#localhost:5000/centos:6.7是我的私有仓库的镜像,可替换为centos:6.7(DockerHub中的镜像)FROM localhost:5000/centos:6.7MAINTAINER fengzheng# Commands to update the imageRUN mkdir /usr/nginx1.9.9ADD nginx-1.9.9.tar.gz /usr/nginx1.9.9/#RUN yum -y install tar#RUN tar -zxvf /usr/nginx1.9.9/nginx-1.9.9.tar.gzRUN cd /etc/yum.repos.d/ && mv CentOS-Base.repo CentOS-Base.repo.bakADD CentOS6-Base-163.repo /etc/yum.repos.d/RUN cd /etc/yum.repos.d/ && mv CentOS6-Base-163.repo CentOS-Base.repo && yum clean all && yum makecache && yum -y install gcc && yum -y install yum install -y pcre-devel && yum -y install zlib zlib-devel && yum -y install openssl openssl--devel && cd /usr/nginx1.9.9/nginx-1.9.9/ && ./configure && make && make install#如果设置daemon off; nginx无法启动#RUN echo " daemon off;" >> /etc/nginx/nginx.conf# Commands when creating a new container# 启动nginx 需进入/usr/local/nginx/sbin 执行./configureCMD /bin/bash最后执行命令"docker build -t nginx-centos:6.7 ."其中.表示在当前目录下搜索Dockerfile文件,-t参数指定镜像名称和tag。

如何用Dockerfile创建镜像

继续docker的学习,昨天用docker成功跑了tomcat,但是在centos中镜像跑的容器手动装jdk和tomcat,今天学习用Dockerfile创建镜像,并在上面搭建java环境,跑一个spring boot小项目。Dockerfile:Dockerfile由一行行命令语句组成,并且支持用“#”开头作为注释,一般的,Dockerfile分为四部分:基础镜像信息,维护者信息,镜像操作指令和容器启动时执行的指令。Dockerfile指令:1、FROM格式:FROM <image>或 FROM <image>:<tag>第一条指令必须为FROM指令,并且,如果在同一个Dockerfile中创建多个镜像时,可以使用多个FROM指令(每个镜像一次)2、MAINTAINET格式:MAINTAINET <name>指定维护者的信息3、RUN格式:RUN <command> 或 RUN ["", "", ""]每条指令将在当前镜像基础上执行,并提交为新的镜像。(可以用“”换行)4、CMD格式:CMD ["","",""]指定启动容器时执行的命令,每个Dockerfile只能有一条CMD指令,如果指定了多条指令,则最后一条执行。(会被启动时指定的命令覆盖)5、EXPOSE格式:EXPOSE <port> [ <port> ...]告诉Docker服务端暴露端口,在容器启动时需要通过 -p 做端口映射

C#使用HTML文件中的file文件上传,用C#代码接收上传文件

HttpFileCollection files = HttpContext.Current.Request.Files;//得到所有的FILE控件for (int i = 0; i < files.Count; i++){HttpPostedFile postedFile = files[i];//取得单个文件}

我的本本上ELAN Smart_Pad开机时不会自己启动,总要去点C:Program FilesElantechETDCtrl.exe 才能启动.

能正常使用的对吧?单纯就开机启动这一点你是不是在杀毒或电脑管理软件里禁止了啊?点开始--运行--输入msconfig,在启动选项卡里找到该项,打钩、应用、确定。试试,不行在说别的。

profile projector 什么意思啊

轮廓测定投影器

c:winntsystem32logfilesw3svc1 文件夹下面到底是记录什么样的文件,可以删除吗?

建议杀毒。 或是保存重要文件 格盘重做系统(推荐)

C:inetpublogsLogFilesW3SVC1 目录下文件能不能删.

能删~还有就是,你这个C盘还挺特别的,何不重新分分区?

协议实验室推出Web3.Storage,让Filecoin存储更简单易用

近日,协议实验室 (Protocol Labs)推出了可供开发人员在Filecoin网络存储和检索数据的操作界面Web3.Storage。在这里,存储和检索数据将无限期免费,让开发人员的应用程序数据可以使用安全、冗余的分布式存储。无论是Web3新手还是Filecoin老手,Web3.Storage都是开发人员参与Filecoin存储的最佳机会。体验地址: https://web3.storage/ Web3.Storage有两大组成部分: l 提供在多个 Filecoin存储矿工的设备上 冗余存储数据的服务,同时可以查询数据存储位置信息并可以通过CID检索数据。 l 用于完成存储、检索、查询的 HTTP端点、 Javascript客户端和网站。 所有上传到Web3.Storage的数据都会被长久地存储在Filecoin 的存储提供商 (Storage Providers)组成的网络里。Filecoin本身的机制保障了所有存储的数据、内容和应用程序都具备 内容可寻址性(Content Addressability)和持久性(Persistence)两大特性。 内容可寻址性指的是 Filecoin网络会基于每个存储内容本身生成一个不可篡改的链接(CIDs),这样一来,所有的存储内容都不可能在不留可追踪痕迹的情况下被 更改、编辑或破坏。 持久性 则是由 Filecoin强大的经济激励模型来实现的,存储提供商将会持续提供可验证的证明来证实存储数据的真实性和完整性。 更具体地说,用户上传到Web3.Storage的数据首先会被放到Protocol Labs 托管的三个分布在不同地点的节点组成的IPFS集群上,在那里它们将会排队等待存储到Filecoin网络中。在此队列里,它们会被与其他Filecoin 订单 (Deal) 中的数据一起打包,然后被存储在至少五个分布在不同地点的存储提供者设备上。 如何使用 Web3.Storage 服务? 现在你可能想知道,我该如何使用Web3.Storage呢 ?很简单! Web3.Storage有公开的HTTP端点,你可以通过 网页端 或者 Javascript客户端 程序库来存储数据。 通过网页端,你可以 创建 Web3.Storage账户和API token 、上传文件,并查看存储的所有文件列表及其存储位置。 客户端库使用的是大家熟知的与 网络 API类似 的编程句法 ,例如 fetch和File ,只需要 构建客户端并使用 _put()_ 程序语言编辑几行代码 就能在 Filecoin上存储数据。 数据一旦被发送至 Web3.Storage, 你可以通过 Query API检查数据的存储状态,只需要输入CID,就可以获得此数据存储的位置信息。 当你的 数据被存储后应当如何检索? Filecoin网络中的 数据持久性意味着数据可以通过多种方式访问,包括IPFS网关、个人IPFS节点、Web3.Storage或者Filecoin检索。多种检索方式选择也为开发者的应用程序带来了灵活性。不过需要注意的是, 无论采用何种检索方式,任何人都可通过 CID请求 检索数据。 现在你可能会想这么有价值的一项服务怎么可能是免费的呢?除去 运行 Web3.Storage 的基础设施需要的一些成本 , Protocol Labs 之所以可以免费为用户提供这项服务,主要是因为Filecoin的存储提供者是 不向 Web3.Storage收取存储用户数据的费用 的,因为他们在存储用户数据时, Filecoin网络已经给予了他们丰厚的奖励。 这其中的经济原理是这样的,Filecoin存储提供商向Filecoin网络承诺并提供硬盘容量,由此获得区块奖励,这些区块奖励可以转化为现实世界的可观的经济利益,从而激励存储提供商的持续投入。 而当存储提供商存储的是 来自 Filecoin用户的数据时,他们赢得区块奖励的可能性 就会 增加 10倍 !这对 Filecoin存储提供 商来说是一个强大的经济激励,因此他们会愿意提供免费的存储和检索服务,来获得这个翻倍的区块奖励。 现在,大多数Filecoin存储提供者都提供免费存储和检索,而且只要区块奖励的激励一直存在,他们就会继续这样做,这种情况应该会持续很长一段时间。 Web3.Storage致力于打造出可以同Filecoin完美交互的易用界面, 目前,产品路线图中未来计划上线的功能还包括支持 DAG(不仅仅是文件),完全的文档化HTTP API,支持IPFS托管服务API 和网络钱包的身份认证等。 若你有想在 Web3.Storage中看到的功能, 可以在Web3.Storage的GitHub中提出你的建议,也可以在Filecoin Slack的web3-storage频道中加入社区。 还在等什么?今天就开始体验 Web3.Storage 吧!
 首页 上一页  1 2 3 4 5 6 7  下一页  尾页