Docker分配静态IP

一.引子

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

二.解

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

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

阅读全文→

Centos安装Minio——AWS S3存储的开源实现

一.缘起

最近搞了几台大硬盘的独服,所以对各种自建网盘啥的比较感兴趣,前几天看到Hyper.sh给我发了一封邮件,标题是“Introducing Minio: Run your own S3 compatible cloud storage onHyper.sh!”,看到这个标题我还是挺感兴趣的,然后就去搜了下这个所谓的Minio,看了下发现相当简单,好不好用的话= =……看一堆程序都支持S3就知道了,然后发现这货还有Web界面方便管理,可以的,很稳。

二.搞起

说搞就搞(其实我拖了好几天了),首先来丢一个官网的Quick Start:传送门

官方的话是推荐用Docker来搞的,不过我大部分机器都没装,所以就用普通的二进制文件来直接解决了(Docker的就pull一下的事,自己去官网复制粘贴)

然后就行了,当然这个是前台运行,如需后台运行可以考虑使用nohup亦或是supervisor,这里我就不多说了

运行后会有输出,用过S3的对这些应该都不会陌生

阅读全文→

Centos6安装fedora-packager导致的Segmentation fault急救方案

一.前因

之前说起过在研究docker,作为强迫症必须尽可能满足dokcer的环境需求,所以开始准备自己定制下内核参数,本着偷懒的念头发现了有个基于kernel-ml的docker适配版内核,叫kernel-ml-aufs,不过试用之后发现还是有几个参数不能满足,幸好这个项目在GitHub有脚本一键生成RPM包(传送门),那真是再好不过了,所以我就打算直接修改下内核的config template然后通过脚本来进行编译。

二.依赖(后果)

依赖其实比较基础,一般装个build-essential然后再按照GitHub项目中说明的一样装个fedora-packager就可以了,但是……问题就出在这儿了,不知道是啥原因,fedora-packager在更新到0.6以后就会出现一个很尴尬的问题,yum会Segmentation fault,如下图

阅读全文→

Centos6安装Docker+BBR——天作之合

一.引子

Docker这东西最近来可是相当火呢,不过我一直没机会去碰,一是不熟悉,二是它对内核要求比较高,作为一个一直呆在Centos6的2.6.32系内核的人= =。3.10以上的内核版本实在是有点遥不可及了,最重要的是,我的机器上一般都装了锐速,用于抵抗这坑比网络环境的影响,然后锐速也对内核版本要求很严格……所以,GG。

不过转折在前一段时间出现了,Google贡献了BBR项目,这是一个内核补丁性质的项目,对TCP进行了优化,我也在它出现后进行过测试,发现对于网络性能有着显著的提高,虽然不像锐速那么猛,但是也算是很可以了。之后在elrepo出了测试版kernel-ml的4.9版本内核后我就想把BBR和Docker放在一起用,不过考虑到还是测试版的问题又忍了下来,过了一段时间出了正式版的kernel-ml,然而我又忙于其他事,不得已只能把此计划后推了。

现在,空了下来,我也终于重拾起之前的计划了。

二.详情

①.首先要装的是kernel-ml,毕竟这是一切的基础,过程还是比较方便的,只是有些注意点

导入elrepo的GPG然后安装elrepo源

然后安装kernel-ml,很顺利

一般来说现在就已经好了,但是,如果你之后碰到啥情况,可以安装kernel-ml的headers、devel以及firmware

这时候你会碰到冲突问题,需要使用rpm -e --nodeps XXX包 来强制删除冲突,然后才能安装上。 阅读全文→