博学笃行·盛德日新

永福的博客

最后更新:

HTTPS协议的主要功能基本都依赖于TLS/SSL协议,本节分析TLS/SSL协议工作原理。 TLS/SSL的功能实现主要依赖于三类基本算法:散列函数 Hash、对称加密和非对称加密,其利用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的完整性。 散列函数Hash 常见的有 MD5、SHA1、SHA256,该类函数特点是函数单向不可逆、对输入非常敏感、输出长度固定,针对数据的任何修改都会改变散列函数的结果,用于防止信息篡改并验证数据的完整性; 在信息传输过程中,散列函数不能单独实现信息防篡改,因为明文传输,中间人可以修改信息之后重新计算信息摘要,因此需要对传输的信息以及信息摘要进行加密; 当前(2019年)实际应用的是sha256算法,md5算法和sha1算法经验证,不再是安全的算法,可以伪造出不同文件有相同的md5值或sha1值,所以在2016年1月1日后,微软不再接受根证书CA机构颁发sha1证书。 对称加密 常见的有 AES-CBC、DES、3DES、AES-GCM等,相同的密钥可以用于信息的加密和解密,掌握密钥才能获取信息,能够防止信息窃听,通信方式是1对1; 对称加密的优势是信息传输1对1,需要共享相同的密码,密码的安全是保证信息安全的基础,服务器和 N 个客户端通信,需要维持 N 个密码记录,且缺少修改密码的机制; 非对称加密 即常见的 RSA 算法,还包括 ECC、DH 等算法,算法特点是,密钥成对出现,一般称为公钥(公开)和私钥(保密),公钥加密的信息只能私钥解开,私钥加密的信息只能公钥解开。因此掌握公钥的不同客户端之间不能互相解密信息,只能和掌握私钥的服务器进行加密通信,服务器可以实现1对多的通信,客户端也可以用来验证掌握私钥的服务器身份。 非对称加密的特点是信息传输1对多,服务器只需要维持一个私钥就能够和多个客户端进行加密通信,但服务器发出的信息能够被所有的客户端解密,且该算法的计算复杂,加密速度慢。 结合三类算法的特点,TLS的基本工作方式是,客户端使用非对称加密与服务器进行通信,实现身份验证并协商对称加密使用的密钥,然后对称加密算法采用协商密钥对信息以及信息摘要进行加密通信,不同的节点之间采用的对称密钥不同,从而可以保证信息只能通信双方获取。 什么是加密套件(Cipher Suites) 加密套件是用于在TSL/SSL握手期间协商安全设置的算法的组合。在ClientHello和ServerHello消息交换之后,客户端发送优先级列表的密码支持套件。然后,服务器使用从列表中选择的密码套件进行响应。 加密套件为以下组合: 密钥交换算法(RSA,DH,ECDH,PSK) 认证算法(RSA,DSA) 批量加密算法(AES,Camellia,ARIA) 消息摘要算法(SHA-256) 这里是一个加密套件的例子: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLS是协议。从ECDHE开始,在握手期间,密钥将通过临时ECDHE进行交换。RSA是认证算法。AES_128_GCM是批量加密算法。SHA-256是散列算法。 大多数浏览器和服务器都有各自支持的密码套件列表,两者将在握手过程中进行优先顺序比较,以确定使用的安全设置。 最后作为TLS 1.3最终版本,这一切都会改变。虽然以前TSL/SSL直到TLS 1.2版本都是是使用上诉描述的加密套件模板,但1.3版本的加密套件将会有所改变,因为它们仅用于协商加密和HMAC算法。 因为1.3加密套件的结构与之前的版本不同,所以它们与旧的TLS版本不能进行互换。 参考 HTTPS加密协议详解(二):TLS/SSL工作原理 http://www.wosign.com/faq/faq2016-0309-02.htm 加密套件:密码,算法以及安全设置 https://www.trustauth.cn/news/security-news/21583.html

什么是HTTPS 在网络上信息在传递过程中会经过其它的计算机,一般情况下,中间的计算机不会监听路过的信息。但在使用网上银行或者进行信用卡交易的时候有可能被监视,从而导致个人隐私的泄露。由于Internet和Intranet体系结构的原因,总有某些人能够读取并替换用户发出的信息。随着网上支付的不断发展,人们对信息安全的要求越来越高。因此Netscape公司在1994提出了SSL协议,旨在达到在开放网络(Internet)上安全保密地传输信息的目的,这种协议在WEB上获得了广泛的应用。 之后IETF(https://www.ietf.org)对SSL作了标准化,即RFC2246,并将其称为TLS(Transport Layer Security)。 HTTPS (Secure Hypertext Transfer Protocol)安全超文本传输协议,是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版,是使用TLS/SSL加密的HTTP协议。 HTTP协议采用明文传输信息,存在信息窃听、信息篡改和信息劫持的风险,而协议TLS/SSL具有身份验证、信息加密和完整性校验的功能,可以避免此类问题发生。 TLS/SSL全称安全传输层协议Transport Layer Security, 是介于TCP和HTTP之间的一层安全协议,不影响原有的TCP协议和HTTP协议,所以使用HTTPS基本上不需要对HTTP页面进行太多的改造。 HTTP协议 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从web服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。HTTP是采用明文形式进行数据传输,可能被不法份子窃取和篡改。 TCP/IP协议 HTTP是基于TCP/IP协议之上的。两台计算机之间的通信是通过TCP/IP协议在因特网上进行的。实际上这个是两个协议: IP:计算机之间的通信 IP协议是计算机用来相互识别的通信的一种机制,每台计算机都有一个IP.用来在internet上标识这台计算机。IP 负责在因特网上发送和接收数据包。消息(或者其他数据)被分割为小的独立包,并通过因特网在计算机之间传送。IP 负责将每个包路由至它的目的地。 IP协议仅仅是允许计算机相互发消息,但它并不检查消息是否已发送,或发送的次序及是否到达而且没有损坏(只查关键的头数据)。为了提供消息检验功能,直接在IP协议上设计了传输控制协议TCP。 TCP : 应用程序之间的通信 TCP确保数据包以正确的次序到达,并且尝试确认数据包的内容没有改变。TCP在IP地址之上引入端口(port),它允许计算机通过网络提供各种服务。一些端口号为不同的服务保留,而且这些端口号是众所周知。 服务或者守护进程:在提供服务的机器上,有程序监听特定端口上的通信流。例如大多数电子邮件通信流出现在端口25上,用于wwww的HTTP通信流出现在80端口上。 当应用程序希望通过 TCP 与另一个应用程序通信时,它会发送一个通信请求。这个请求必须被送到一个确切的地址。在双方“握手”之后,TCP 将在两个应用程序之间建立一个全双工 (full-duplex) 的通信,占用两个计算机之间整个的通信线路。TCP 用于从应用程序到网络的数据传输控制。TCP 负责在数据传送之前将它们分割为 IP 包,然后在它们到达的时候将它们重组。 TCP/IP 就是TCP 和 IP 两个协议在一起协同工作,有上下层次的关系。 TCP 负责应用软件(比如你的浏览器)和网络软件之间的通信。IP 负责计算机之间的通信。TCP 负责将数据分割并装入 IP 包,IP 负责将包发送至接受者,传输过程要经IP路由器负责根据通信量、网络中的错误或者其他参数来进行正确地寻址,然后在它们到达的时候重新组合它们。 TCP/IP协议参考模型 HTTP工作原理 一次HTTP操作其工作整个过程如下: 1. 地址解析 如用客户端浏览器请求这个页面:http://www.example.com/test_page.html 从中分解出协议名、主机名、端口、对象路径等部分,对于我们的这个地址,解析得到的结果如下: 协议名:http 主机名:www.example.com 端口:” 对象路径:/test_page.html 在这一步,需要域名系统DNS解析域名www.example.com,得主机的IP地址。 2. 封装HTTP请求数据包 把以上部分结合本机的信息,封装成一个HTTP请求数据包 3. 封装成TCP包,建立TCP连接(TCP的三次握手) 在HTTP工作开始之前,客户机(Web浏览器)首先要通过网络与服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能,才能进行更层协议的连接,因此,首先要建立TCP连接,一般TCP连接的端口号是80。

下了班,正哈皮哈皮的吃着蛋炒饭,领导在钉钉里就是给你一个截图,只得立马放下正在吃的饭,拿起吃饭的家伙,开始查原因。 emmm,貌似是https的问题,会不会是我证书配置错误了呢?赶紧用自己的浏览器打开网址,可以打开呀。好的,我再用命令行打开一下看,还是没有问题呢? 赶紧回复,没有问题,我这里一切正常。 会不会是操作系统的问题,会不会是浏览器的问题?然后又问领导要操作系统和浏览器信息。 windows xp!!! xp!!! xp!!! IE 8!!!! IE 8!!!!IE 8!!!! 额,问题确定了,就是xp的问题,就是ie的问题,直接回复领导:“https不支持xp,不支持ie。” 然后搜索了几篇文章,比如 https://support.microsoft.com/zh-tw/help/813444/you-cannot-log-in-to-or-connect-to-secured-web-sites-in-internet-explo 让用户那边进行操作一下,看能不能访问。 万事大吉,立刻开吃。 Ding~, 又一条钉钉消息,piapiapia,知道可能要打脸了。 要用户操作的话,肯定不是我们解决问题的方式和方法. 其实我的内心OS是,现在还有谁在用windows xp呀,为了这么点用户值得么(冷静下来后想想,这么点用户到底是多少用户呢?有统计过么?)?xp都不支持sha256算法呀,而我们的证书就是sha256的,低版本的加密算法又被证明并不安全。 不想碰windows,不想碰xp,更不想碰ie! 怎么办,能怎么办,我也不知道怎么办。既然xp不支持sha256算法,而我们的证书是sha256算法的,那应该就是这个原因了吧,赶紧给领导解释。 Ding~,又一个截图,piapiapia,这下又打脸了。 百度也是https,怎么可以用ie打开呢?淘宝也是https,怎么可以打开呢?百度的就是sha256算法。 看到那个ov,像是救命稻草一样,只想着赶紧把这个事情给完结了。先暂时这么假设吧。 当然咯,我们也不能就这样轻易的放过自己,凭啥你百度可以https,我不行呢?百度怎么实现的呢?哎呀,头痛头痛,先吃了饭,回家再研究。 百度搜百度为啥可以windows xp使用https,百度根本就不会告诉你,哈哈哈哈呜呜呜呜😂😂。,还得问问谷歌。 一开始搜索到这篇文章: https://www.it68.com.cn/2015/08/06/nginx-ssl-sha256-support-xp-ie-and-ie7/ , 但是只是告诉我们 xp下的IE6和IE7不支持SNI,IE6/IE7不认SHA256证书只认SHA1证书, 而且不会对SHA1证书出任何警告 对我解决现在当前的问题,并没有什么帮助。 继续查找: http://blog.sina.com.cn/s/blog_53b91ff30102wsya.html , , 问题和我遇到的几乎一模一样呀,感觉找到了救星。赶紧在一台服务器上进行测试,加上如下配置: ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; 还是打不开呀,沮丧到极点,喝口水,洗个澡。 休息够了,继续未尽之事业。 查了几篇文章,还只有这篇文章比较靠谱,再仔细看一篇。检查了IE的高级安全配置,配置都是正常的。 那只能看看他的参考啦: https://ablagoev.github.io/ssl/nginx/ie8/winxp/cipher/2016/12/23/ie8-winxp-nginx-ssl.html 看了这篇文章算是有点懂了,就是客户端的加密方式和服务端的加密方式是不是配套的问题,客户端的加密方法可能在我的服务端(Nginx)根本不支持这种方式进行解密了。重新编译nginx,编译的时候,加上 --with-openssl=./openssl-1.1.0j --with-openssl-opt=enable-weak-ssl-ciphers。 进行测试,一切都变得那么顺畅了,在ie8上能进行访问了。 我在自己的服务器搞定了,但是这个域名是上了CDN的,CDN那边还是不支持IE8呀。不管怎样,先给领导汇报一下吧。 本来是怀着解决问题激动,但是领导又是一盆冷水淋到头上,怎么确定CDN那边不支持,和他们确认了么? 赶紧找阿里云和网宿确认 - 阿里云的回复: 工程师 xxxx 号 : 您好,CDN的https协议是通过SNI技术实现的,因此在部分低版本的系统的低版本的操作系统会出现无法兼容的情况导致SSL校验失败的情况,该问题确实不好解决,现在仅能够升级客户端的操作系统或者浏览器版本解决该问题。 附:SNI技术对于浏览器的兼容情况:https://www.ssllabs.com/ssltest/clients.html 网宿的回复: 优秀的领导总是逼自己的下属成长,咦,好好的一篇檄文,怎么就变成了马屁文了?

永福的2018

又是一年一度,2018既平凡又不平常的一年。 首先回顾一下2018年的计划: MacBook Pro,Apple Watch,iPad Pro, iPhone 8 监控系统开发上线 专业书籍和非专业书籍各12本 买一辆代步车 全家旅游,桂林或张家界 对于第一项,公司配置了一部15寸的MacBook Pro,暂时也没有更新的必要了。Apple Watch 买了,ipad pro 买了。至于手机,修一修,应该还能再战2年。 监控系统开发这个,换了一种方式,开发了一套运维管理平台,作为整体的资产管理系统,功能还在继续完善中。 这一年,还是看的专业书籍太少,闲书杂书看得多,相对来说,这些更容易看吧。 车这个就呵呵了,快到年底的时候,终于还是把驾驶证给考了。 全家旅游,没有去的成桂林和张家界,反而去了香港。 总的来说,完成了60%左右的目标吧,目标还是有点随意,没有经过具体的计划,只是自己心中想要的一种状态。这方面还得加强。 工作 对于工作,这一年还是稳扎稳打,没有出现大的故障,总体团队也是在扩充之中。但是团队也存在一些不稳定因素,希望明年公司发展更好,能够解决掉这些不稳定因素。 这一年,整体的工作更加的规范化,制定了一些大家必须遵守的规范,搭建了堡垒机系统,开发了CMDB系统。对于个人的技术发展方向,倒是有点迷茫,每天处理一些不大不小的问题,帮朋友分析分析服务器问题,也没有其他的什么事情了。 生活 生活上面发生了翻天覆地的变化,2018年9月10日和璐璐结婚,有人愿意收留这个老男人咯。感谢她对我,对廖可心,对爸爸妈妈的照顾。感谢她对我的所有包容和支持。 老爸7月的时候,突发胃出血,医院抢救及时,总算是抢救过来了。之后搬来长沙,和我们一起住,我们也更好的照顾他。 11月的时候,老爸又是因为吃药吃太多了(哎,说不听,总是私自乱吃药),深度昏迷了一天一夜,还差点以为就这样过去了,谢天谢地,总算是夺回命来。 大难不死,也期待老爸以后有更大的福分咯。老爸说,这辈子最大的福分,就是有哥哥和我这两个儿子,以及两个儿媳都很孝顺,希望我们要好好地,永远幸福下去。 旅行 3月,上海迪士尼 10月,南岳衡山之旅;冰刀滑冰 11月,香港之旅 12月,海底世界;湖南省博物馆 2019年计划 添丁 还清所有欠款(房贷除外) 注册公司,做一个属于自己的项目 看书(12本),做笔记和总结。练字,至少做到字迹清晰。 全家平安健康,北京之旅。

原因 和璐璐婚后的第一次旅行,先打卡全国所有的34个省(市/自治区)。 乐崽4岁生日 爸爸妈妈第一次(也可能会是最后一次了吧)出远门到达香港,看海 买11寸蜂窝版iPad Pro 行程 本来被通知11月26号(周一)才能拿到港澳通行证,结果11月23号(周五)就拿到了。开始按照plan B进行车票预订。直接买到香港的车票是没有了,就先到深圳咯,在深圳睡一晚,第二天一大早从深圳北出发去香港。 在深圳北到香港,需要先取票,最好把回程的票也一起取了,省的回来的时候又要排队取票。 十几分钟达到香港,出境入境跟着人潮走就行。因为我们都是第一次入境,所以需要走人工通道;因为带着乐乐(小于5岁的小孩)所以需要走人工通道;因为老人家必须走人工通道;所以我们一行五人全部走的人工通道。 根据网上的帖子,然后考虑到出行方便,决定在油麻地铁站附近找房子。在携程上看到香港的住宿基本上一千多起,真心没住过这么贵的,没舍得下单,然后在百度地图上一看,只要400多500多呀,百度上直接订不了,那我就到了自己再去找去订咯。然后就是悲剧的一上午的找房之旅,璐璐陪老爸老妈在麦当劳坐着吃点东西,我就抱着乐崽找酒店,去了五六家,全满了呀,木有房了呀。要不就是2000+一间的,1000+都觉得贵,2000+怎么舍得。无奈,再查百度,继续找酒店,最后凯都酒店,1880元/间*2间下单。还好的一点是,房子比我想象中的要大,到地铁站也近。放好行李,正式开启香港之行。 第一站海洋公园。因为答应乐崽带她去沙滩,想着海洋公园肯定会有海滩吧,结果我错了,其实就是一个建在海边的游乐园。在缆车上也算是带老爸老妈看了海。吐槽一下,游乐园里永远少不了的排队。 晚上本来要带大家到香港商场里搓一顿,到了中环,迷路了,真的找不到餐馆在哪里呀,房子建的又密又高,导致GPS定位一点都不准。香港的商场也和大陆的不一样,根本找不到吃的在哪里,不想再走了,主要是走的真的很累了。回到住的酒店附近,找了个饭店吃饭(三洋餐厅),哎呀,虽然饭菜份量不错,但是和旁边喝茶的人还是格格不入🤦‍♂️。吐槽:餐纸2港币一张。 吃了东西回到酒店,老爸老妈说累了在酒店休息一下,乐崽是已经睡着了。我和璐就去买个iPad啰,国内的iPad Pro蜂窝版还在审核中,没有开售。可惜的是Apple Pencil没货了,苹果店小哥说被大陆的水货客全买走了。璐买了点化妆品。然后就在维港看看香港的夜景,这个夜景真的是不敢恭维,不知道是为了节能还是怎么的,黑漆漆的一片,夜景中最亮的几个招牌还是国内的品牌。就在摩天轮旁边,好像还有一场演唱会,不知道又是谁在那里唱唱跳跳呢。还放了烟花,就那么一小丢丢的烟花,把香港人兴奋得不得,不知道他们看到橘子洲持续二十分钟的烟花,会嗨到什么程度…… 第二天的行程,就是带老爸老妈去维多利亚港湾去转一转,但是下了点小雨,都没怎么沿着港口走走,就从尖沙咀坐了个轮渡到对面的摩天轮。摩天轮只需要20港币一个人,还是很值得的。摩天轮的小仓是360度全透明的玻璃,由于下小雨的原因,视线不是很好,维港也只能看个大概,转了三圈。 出来的时候,就可以坐香港著名的旅游大巴,绕着香港比较有名的几个地方走一圈,大概一个小时。因为雨下得还是有点大了,关键是还需要两百多港币一个人,淋着雨一个多小时,感觉完全没有必要,也就放弃了这个项目。 临时新增的项目,之前和老爸老妈灌输了海水是咸的的概念,他们一辈子没看过海,想要去尝尝海水是不是真的很咸。看着他们在用怡宝漱口,就猜到还是去尝了。跟我说,海水这么咸,得放多少盐呀。😁 然后就是中午了,预先做了功课,还是带着老婆老爸老妈,还有乐崽去吃顿有香港特色的翠玉轩,人均不到200港币,还算吃的可以吧。反正爸妈说是比去北京的时候吃得好。廖可心的生日,也算是在这里庆祝了。 走走停停,回到酒店2点左右。因为是下午5点的高铁,然后动身去高铁西九龙总站。因为这边的taxi只能坐4个人,只好分两部车打咯。在柯士甸地铁站将所有的八达通卡都退了,准备出关香港和入境大陆的香港手续。因为临时买票,也没有买到直达长沙南的车票,只能又从深圳转车。 周日晚上10点多到长沙南站,地铁到家11点多。香港之行完美收官。 香港印象 1. 香港人、外国人 a. 入港第一个对话的人 香港人还是挺友好的,拖着行李,来到公交车站准备坐公交去油麻地。刚好旁边有个60岁左右的香港大爷也在等公交,问他公交怎么坐。因为我们在网上查了,这个站是有这个公交的,也看到了,但是公交没有停。经过询问,才知道,这个公交是需要我们主动招手才会停的。然后简单交流了一下,问我们是从哪里来的,做什么工作,希望我们在香港玩得开心等等,反正他说着我听不太明白的粤语,又努力让我明白的普通话口音,总体上还算是交流成功了。感谢他,让我对香港人的印象还是挺好的。 b. 地铁让座的人 香港人几乎没有抢地铁一说,大家都很规矩也很安静,基本听不到大声的喧哗和看手机开外放的情况。我抱着乐崽,只要有人看到了,他们都会很主动的给我让位,真的很感激他们。地铁不用安检,大家也比较守秩序。 c. 卖东西的人 卖东西的人人都会普通话,便利店的阿姨、专柜的小姐姐、苹果店的小哥哥通通都是普通话粤语英语随时切换。买龙须糕的那个阿姨,因为算错了给我多打了一盒龙须糕的钱,一直在给我道歉,也能感觉到她们的真诚。 d. 等摩天轮的外国人 在等摩天轮的时候,排在我前面的是一对外国人夫妻带着一个不到2岁的小孩。小孩子直接总是天然的亲近,没一会儿,两个小孩完全语言不通的相互笑起来了,那个2岁的宝宝模仿着乐崽的每个动作。作为父母的我们,也就自然的聊起来了。问问小孩多大了之类的。然后我们就聊着他们是从哪里来的,因为他们的皮肤挺黝黑的,看起来是非洲人一样的,就问他们是不是come from Africa。他说他们来自印度洋的一个国家,但是真的没听过那个国家的名字(这个我还要到网上去查查看)。然后我说我们来自中国,他就特别兴奋了,他说他去过中国很多地方,比如安徽,武汉等。说起中国,能看得出他满脸的赞叹和赞美。 2. 建筑交通 a. 八达通 如果你要游玩几天的话,强烈建议办一张八达通卡。到达高铁西九龙总站入境之后,走3-4分钟左右,到柯士甸站服务中心排队购买八达通的卡。记住,这个只接收港币哦。儿童可以单独买个八达通的儿童票的卡。八达通的卡在香港出行必备,除了不能坐出租车,其他几乎都可以使用,可以坐公交、地铁、轮渡,甚至可以到7-11买东西。 b. 地铁/交通印象 香港地铁虽然没有安检提高了通行效率,可以使用八达通也挺方便,但整个地铁站和大陆的地铁站感觉好像隔了一个世纪。地铁里没有满车厢的广告,没有地铁电视的喧闹,甚至没有空调,全靠地铁开动后,那冷飕飕的风从头顶飘过。车厢里的站点显示屏还是那种很老式很老式的LED红点点显示的文字,一种很古老的感觉。 马路很窄,每个方向只有2个车道,每个车道只是刚刚够一辆车的宽度。公交基本都是两层的大巴,有时候两辆大巴并排前进的时候,真的害怕他们撞在一起了。虽然车道宽度不够,但是他们车速都很快哦,也是佩服他们的车技。 过马路的时候,遵守规则,都会等着绿灯亮了,才会出发过马路。也许不遵守规则的,早会被这个快节奏的香港所淘汰了吧。 c. 房子印象 虽然住的这个酒店的房间和国内的酒店房间差不多大小,没有体会到网贴里说的那种只有一个床的情况。但是从这个寸土寸金的地方看,各个房子并不是很大的。房子虽然都还比较高(一般都是至少是12层楼以上),但从外观看,显得很是破旧。看到有几个地方在装修外观,但是居然都是用竹子搭建上去的,真的是不敢想象。在大陆,现在就算在农村修房子基本都看不到用竹子搭架子了,基本也都是用钢铁的脚手架搭建。璐璐也不断和我说,感觉来一次香港,在长沙生活的幸福感都上升了不少,还是家乡好。 3. 其他 你可以说普通话,甚至只需要会说普通话就行了。虽然这边官方语言是粤语,但是真的是几乎你碰到的每个人每个销售员,都会普通话和你交流。当然说粤语和英语也很普遍。 如果只有2天的行程的话,我们五个人,只需要兑换1000港币就完全足够了。只有购买八达通卡和打taxi的时候用得到,其他的时候,几乎都被支付宝和微信霸占了,也可以直接刷银联卡。你可以随意刷微信和支付宝,自动帮你计算好汇率进行购买。通过经济的交流,香港算是完全回归到祖国的怀抱了。

方法1: 进入Finder(访达)后,按住 Command(⌘) + Shift(⇧) + . 三个按键即可可以显示隐藏文件、文件夹; 当再按一次时,恢复隐藏; 方法2: 在终端(Terminal)输入如下命令,即可显示隐藏文件和文件夹 defaults write com.apple.finder AppleShowAllFiles -boolean true ; killall Finder 如需再次隐藏原本隐藏的文件和文件夹,可以输入如下命令 defaults write com.apple.finder AppleShowAllFiles -boolean false ; killall Finder 其他: finder下使用Command+Shift+G 可以前往任何文件夹,包括隐藏文件夹。

在9to5mac.com(https://9to5mac.com/2018/11/19/why-tumblr-was-removed-from-app-store/) 上看到pornography这个单词,不太明白这个后缀ography是什么意思,google一番,做个记录。 上面提到的这个单词意思我就不翻译了,以免引起不不必要的麻烦。 我们来说说其他几个单词。 -ography topography : n. 地势; 地形学; 地形测绘学; 地志 geography : n. 地理;地形; 地理学 biography : n. 传记;档案;个人简介 cardiography : n. [内科] 心动描记法 cardiograph 心电图;[内科] 心动描记器 The suffix -graphy refers to something written about a particular subject. 后缀-graphy一般和特定主题的需要写或画出来的有关。 -ology topology : n. 拓扑学;拓扑 network topology [计]网络拓扑结构 geology : n. 地质学;地质情况 astrology : n. 占星术;占星学;星座 ecology : n. 生态学;社会生态学 biology : n. (一个地区全部的)生物;生物学 cardiology : n.

0x00 原因 当我们直接使用docker pull命令的时候,实际上都是pull对应镜像的latest标签或者默认标签。 比如我们 docker pull centos : # yongfu @ yongfus-MacBook-Pro in ~ [17:51:14] $ docker pull centos Using default tag: latest latest: Pulling from library/centos aeb7866da422: Pull complete Digest: sha256:67dad89757a55bfdfabec8abd0e22f8c7c12a1856514726470228063ed86593b Status: Downloaded newer image for centos:latest # yongfu @ yongfus-MacBook-Pro in ~ [18:11:36] $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 75835a67d134 3 weeks ago 200MB # yongfu @ yongfus-MacBook-Pro in ~ [18:11:39] $ docker run -it 75835a67d134 /bin/bash [root@efa402cdfddb /]# cat /etc/redhat-release CentOS Linux release 7.

这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行中的容器之间的区别。 当我对Docker技术还是一知半解的时候,我发现理解Docker的命令非常困难。于是,我花了几周的时间来学习Docker的工作原理,更确切地说,是关于Docker统一文件系统(the union file system)的知识,然后回过头来再看Docker的命令,一切变得顺理成章,简单极了。 题外话:就我个人而言,掌握一门技术并合理使用它的最好办法就是深入理解这项技术背后的工作原理。通常情况下,一项新技术的诞生常常会伴随着媒体的大肆宣传和炒作,这使得用户很难看清技术的本质。更确切地说,新技术总是会发明一些新的术语或者隐喻词来帮助宣传,这在初期是非常有帮助的,但是这给技术的原理蒙上了一层砂纸,不利于用户在后期掌握技术的真谛。 Git就是一个很好的例子。我之前不能够很好的使用Git,于是我花了一段时间去学习Git的原理,直到这时,我才真正明白了Git的用法。我坚信只有真正理解Git内部原理的人才能够掌握这个工具。 Image Definition 镜像(Image)就是一堆只读层(read-only layer)的统一视角,也许这个定义有些难以理解,下面的这张图能够帮助读者理解镜像的定义。 从左边我们看到了多个只读层,它们重叠在一起。除了最下面一层,其它层都会有一个指针指向下一层。这些层是Docker内部的实现细节,并且能够在主机(译者注:运行Docker的机器)的文件系统上访问到。统一文件系统(union file system)技术能够将不同的层整合成一个文件系统,为这些层提供了一个统一的视角,这样就隐藏了多层的存在,在用户的角度看来,只存在一个文件系统。我们可以在图片的右边看到这个视角的形式。 你可以在你的主机文件系统上找到有关这些层的文件。需要注意的是,在一个运行中的容器内部,这些层是不可见的。在我的主机上,我发现它们存在于/var/lib/docker/aufs目录下。 sudo tree -L 1 /var/lib/docker/ /var/lib/docker/ ├── aufs ├── containers ├── graph ├── init ├── linkgraph.db ├── repositories-aufs ├── tmp ├── trust └── volumes 7 directories, 2 files Container Definition 容器(container)的定义和镜像(image)几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。 细心的读者可能会发现,容器的定义并没有提及容器是否在运行,没错,这是故意的。正是这个发现帮助我理解了很多困惑。 要点:容器 = 镜像 + 读写层。并且容器的定义并没有提及是否要运行容器。 接下来,我们将会讨论运行态容器。 Running Container Definition 一个运行态容器(running container)被定义为一个可读写的统一文件系统加上隔离的进程空间和包含其中的进程。下面这张图片展示了一个运行中的容器。 正是文件系统隔离技术使得Docker成为了一个前途无量的技术。一个容器中的进程可能会对文件进行修改、删除、创建,这些改变都将作用于可读写层(read-write layer)。下面这张图展示了这个行为。 我们可以通过运行以下命令来验证我们上面所说的: docker run ubuntu touch happiness.txt 即便是这个ubuntu容器不再运行,我们依旧能够在主机的文件系统上找到这个新文件。

Docker入门_1

一、docker安装并使用阿里云的镜像 CentOS 7 (使用yum进行安装) # step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # Step 2: 添加软件源信息 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # Step 3: 更新并安装 Docker-CE sudo yum makecache fast sudo yum -y install docker-ce # Step 4: 开启Docker服务 sudo service docker start 二、概念 镜像 镜像是一个可执行的包,它包含运行应用程序所需的所有内容——代码、运行时、库、环境变量和配置文件。镜像的内容不可变更,是一个read-only的系统。 容器 容器相当于镜像的一个实例,是一个read-write的系统。通过运行镜像来启动运行容器。 仓库 仓库就是镜像打包存储的地方。 三、Dockerfile Dockerfile定义了容器内的环境。对网络接口和磁盘驱动器等资源的访问是在这个环境中虚拟化的,这个环境与系统的其他部分是隔离的,所以您需要将端口映射到外部世界,并且要具体说明您想要将哪些文件“复制”到该环境中。 但是,在这样做之后,您可以预期,在这个Dockerfile中定义的应用程序的构建无论在何处运行,其行为都是完全相同的。 默认情况下,容器可以主动访问到外部网络的连接,但是外部网络无法访问到容器。 RUN命令与CMD命令的区别在哪里? 简单说,RUN命令在 image 文件的构建阶段执行,执行结果都会打包进入 image 文件;CMD命令则是在容器启动后执行。另外,一个 Dockerfile 可以包含多个RUN命令,但是只能有一个CMD命令。 注意,指定了CMD命令以后,docker container run命令就不能附加命令了(比如前面的/bin/bash),否则它会覆盖CMD命令。 发布镜像 先登录docker docker login 标签是可选的 docker tag image username/repository:tag 例如:docker tag friendlyhello gordon/get-started:part2 发布镜像 docker push username/repository:tag 四、DockerCompose volumes的作用有点类似于VMware里面的共享目录,用于将物理主机里的目录映射到docker虚拟机里 其中 volumes: - $PWD/:/test_pwd 表示将物理机的当前目录映射到docker虚拟机/test_pwd里面。 指令集合(https://cloud.