容器云技术分析

容器技术是一种轻量级的虚拟化解决方案,自Docker开源之后,容器技术受到了广泛的关注和讨论。容器技术与传统VM不同,传统VM是通过中间层将一台或多台独立的机器虚拟运行于物理硬件之上,而容器是直接运行在OS之上的内核空间 也被称为操作系统级别的虚拟化,由于依赖于操作系统,所以容器只能运行于相同与相似的内核的操作系统。docker使用的容器技术是依赖于Linux内核特性:namespace和cgroups,所以docker上只能运行linux系统。

Read More

关于docker pull不给力

Docker Hub经常被\,我相信很多学习docker的道友们都遇到过这种麻烦。。。
可以使用免费代理XX-Net,启动之后默认代理端口是8087。
*在Linux下设置代理

1
2
export http_proxy=http://127.0.0.1:8087
export https_proxy=http://127.0.0.1:8087

之后就可以正常使用docker pull。
如果使用VMware虚拟机,可以把虚拟机的网络设置为桥接模式。

不过,还是建议使用daocloud

docker安装

安装Ubuntu维护的docker版本
安装非常简单

1
2
$sudo apt-get install docker.io
$source /etc/bash_completion.d/docker.io

缺点

docker版本略旧

安装docker维护的版本
之前一直用的安装脚本的url——https://get.docker.com/ubuntu已经弃用了

1
curl –sSL https://get.docker.com/ | sudo sh

使用非root用户
执行docker命令需要root权限,如果使用非root用户需要添加一个docker的用户组,然后将用户添加到docker用户组中。

1
2
3
$sudo groupadd docker
$sudo gpasswd -a USER docker
$sudo service docker restart

使用静态工厂方法代替构造器

静态工厂方法只是一个返回类的实例的静态方法。如下简单示例:

1
2
3
public static Boolean valueOf(boolean b){
return b?Boolean.TRUE:Boolean.FALSE;
}

Read More

taglib工作原理

在struts2中很重要的功能:数据封装、数据回显。数据封装的实现很好理解,即通过在过滤器预先读取请求参数的值,并利用反射机制封装到一个对象,即Model,所以需要implements接口并实现setModel方法,或者是封装到action的属性中,然后调用action的execute方法。本文的重点是记录我对数据回显的理解。
struts2数据回显实现让我对taglib的原理产生了疑问,于是开始探索……..
jsp文件中允许使用自己定义的标签库,如struts2的标签库

<%@ taglib prefix=”s” uri=”/struts-tags”%>

那么,这些标签是怎么工作的呢?

Read More