CentOS6 安装最新版Docker 17.03——自给自足,老树逢春

一.起因

其实吧,我目前大部分跑Docker的机器用的还都是CentOS7,毕竟因为方便点,不需要自己折腾,但是,有些时候还真是迫不得已。前阵子买了台Dacentec的大硬盘服务器,准备拿来跑另外一个Plex服务器的,顺便因为带了/29的ip所有打算拿来再搞点别的比如存储仓库和PT啥的,不过,在我装CentOS7的时候卡死在PXE装系统的步骤了,发了个工单得知了一个蛋疼的消息,就是这款超微的主板网卡驱动与CentOS7不兼容,所以导致我半天都装不上去。没办法了,只能装CentOS6了。

那么原本计划用来跑其他用途的Docker也只能通过编译的方法安装了,说实在话这个我心里还是有底的,毕竟之前折腾过,参见——>传送门

只是那次只是玩玩的,属于实验性质,不太靠谱,所以这次打算折腾个完全能用的方法出来。

二.方法

前半部分其实和原来的差不多,只是为了安装更新的版本所以有所变动。有一点需要注意,就是最新的Docker采用OverLay2作为存储驱动,这个我前一篇文章还提到过,所以对内核版本要求比较高,请务必在进行下面操作前安装新版本的内核,还能顺便启用BBR,参见——>传送门 阅读全文→

Docker切换OverLay(2)——提高性能,加快速度

一.介绍

Docker支持AUFS、Btrfs、Device mapper、OverlayFS、Overlay2FS、ZFS五种存储驱动。(关于这些的优劣我就不谈了,说法太多,大家搜索一下可以看到很多相关的文章)

对于CentOS系统来说,一般装完Docker都是第一个,主要是内核的问题,如果是7的话可以改OverLay,不过6就没办法了,但是,真的没办法吗,当然不是,升级内核就OK了。

如果要aufs那么可以选择Kernel-ml-aufs,不过不推荐,直接上4.9版本的内核配合BBR岂不是美滋滋,这个在我之前的文章中有介绍,感兴趣的可以去看看。

aufs之所以不推荐是因为它要对内核打patch,不是原生支持的,所以我们当然选择OverLay或者OverLay2咯,在升级完内核的前提下,我们直接修改Docker的配置,或者启动命令就能够完成切换,不过,建议在切换前确保你本地的镜像已经备份,因为修改后会无法识别之前的,建议备份完后先清空然后再切换。

另外,如果对Docker这些存储驱动的性能感兴趣的可以去网上搜下,有读写啥的对比。

二.方法

我直接以命令的方式给出,另外,请注意,最新的docker默认使用的就是overlay2,关于CentOS6安装最新的Docker,我曾经稍微介绍过一下——> 传送门

后面的文章会详细介绍如何在CentOS6的环境下安装最新的Docker 17.03版本,感兴趣的可以看看。

PS.官方文档感兴趣的可以自己看 ——>传送门 阅读全文→

使用Docker部署Cloudflare Railgun

一.介绍

虽然这个Railgun不像炮姐的电磁炮那么屌,但是在大部分情况下都能够提升一定的网站访问速度,特别是多次访问的速度。

当然,作为Cloudflare的秘密武器之一,这个也不是免费使用的,在两种途径下可以使用,一种当然是乖乖交钱选择付费套餐,还有一种就是成为Cloudflare的Optimized Partner,这个是在普通Partner的基础上另外签合约,来加入Cloudflare的Optimized计划,具体的建议自己去官网看,我懒得说了,主要多的权限就是这个Railgun。

简单的来说,这个Railgun是在你的源站和CF的回源服务器之间再加一个Railgun服务器,由于Railgun可以配置的Keepalive时间较长,所以能够在连续访问的情况下与你的网站建立一个长连接,减少TTFB。并且由于Railgun支持对象缓存,所以能够将静态内容直接Hit而不是再次回源。在这两个措施下,Railgun能够视网站访问状况减少服务器压力并且提高一定的访问速度。 阅读全文→

Docker分配静态IP

一.引子

我们知道,默认情况下Docker创建容器分配的IP都是随机的,甚至有些情况下是啥Host网络之类的,除非进行端口映射,不然你都没办法访问到容器内的服务,这就对我们的某些需求很不利。比如,WordPress博客可以使用Redis进行加速,那么我创建Redis容器之后会面临一个尴尬的局面,就是要暴露端口,然后要么就需要配置密码,要么就是不设密码,但是必须用iptables阻断分配端口的外网访问防止被人日了。

二.解

后来我才发现了映射ip能绑定127.0.0.1,然而,还是不能搞清楚怎么样直接用宿主机访问容器的IP (其实就是懒,我这人反正基本上需要啥就研究啥,用不着就没动力去研究)。今天正好又碰到了这个需求,所以研究了下,发现有竟然有这个操作。下面来介绍一下

关于Docker的几种网络我就不说了,反正百度都能搜到一堆

阅读全文→

Centos6安装新版本Docker——套路大法

一.介绍

Centos6对于Docker的官方支持理论上来说只能算是勉强能用,因为只提供了基于1.7.1版本的docker-io,还得先装EPEL源,然而1.7.1版本很多功能都有缺失,至少到1.9才能算够用。

所以怎么办呢?按照以往的思路来说,官方源版本不够的程序当然是选择自己编译咯,但是!这个并不能行得通,至少不能直接行得通,为什么?因为Docker的编译需要在Docker中进行(是的,要先装Docker才能编译Docker,没毛病),然而在运行的参数中有个ARG,这个至少在1.9版本的Docker上才支持,所以……你在1.7.1的Docker的环境下编译只会收到"docker Step 1 : ARG Unknown instruction: ARG"的报错,然后就GG了。

二.解决方案

那么,怎么办呢?当然是想办法过渡一下,我在网上翻了不少东西,终于发现了一篇文章——>传送门

作者给了Docker官方的一个1.9.1版本的二进制文件下载地址,这个在Centos6上是能用的,作者表示他是直接用的,然后会发生无法修改配置的情况(因为真的只有一个文件,啥启动文件啊,配置文件啊,全都没有),但是捏,我想了个办法来移花接木。那就是先装1.7.1的,然后直接用1.9.1的文件替换1.7.1的,这样用了1.7.1的配置和各种启动文件,而程序本身确实1.9.1的

(有个前提条件,请确保你的内核版本高一点,我建议是直接上4.9的内核,配合BBR美滋滋,然后文件系统用OverlayFS也是很棒棒,详情查看——>传送门  我博客另外一篇为Docker定制内核的就别看了,那个太麻烦了,而且也是因为1.7.1没法用OverlayFS所以才选了AUFS)

好像有点绕?不用纠结,看命令

阅读全文→