管理工具收集:
Docker 发布全新管理工具:Machine/Swarn/Compose http://dockerpool.com/article/1419220552
Docker管理工具Web UI:DockerUI & Shipyard http://dockone.io/article/225
DockerUI https://github.com/crosbymichael/dockerui
Run cmd docker run -d -p 9000:9000 -name dockerui -v /var/run/docker.sock:/var/run/docker.sock dockerui/dockerui
Open your browser to http://<dockerd host ip>:9000Shipyard https://github.com/shipyard/shipyard
Run cmd docker run –rm -name shipyard -v /var/run/docker.sock:/var/run/docker.sock shipyard/deploy start
Open your browser to http://<dockerd host ip>:8080, username: admin, password: shipyardDockerboard http://golanghome.com/post/598
docker pull dockerboard/dockerboard
docker run -d -p 8001:8001 -v /var/run/docker.sock:/var/run/docker.sock –name dockerboard  dockerboard/dockerboard
open http://127.0.0.1:8001

国内首个容器管理平台——cSphere v0.10.0stable https://csphere.cn/docs/1-installation.html

Java代码
  1. curl -SsL -o /tmp/csphere-install.sh https://csphere.cn/static/csphere-install-v2.sh
  2. sudo env ROLE=controller CSPHERE_VERSION=0.12.2 /bin/sh /tmp/csphere-install.sh

打开浏览器,访问controller A主机的1016端口 http://localhost:1016/signup ,即可看到控制台的界面。
点击左侧的“主机”菜单,进入主机列表页面,点击“添加主机”

Docker —— 从入门到实践 http://dockerpool.com/static/books/docker_practice/index.html
让Docker功能更强大的10个开源工具 http://os.51cto.com/art/201411/456204.htm
Kubernetes,这是谷歌开发的一款开源Docker管理工具,用于跨计算机集群部署容器。除了通过让集群上部署的容器保持均衡,从而有助于管理Docker节点的工作负载外,Kubernetes还提供了让容器可以彼此联系的方法,不需要开启网络端口或执行其他操作。http://www.infoq.com/cn/articles/Kubernetes-system-architecture-introduction
Docker的WEB管理界面shipyard http://my.oschina.net/u/1396253/blog/178125, 官方文档:http://shipyard-project.com/docs/quickstart/
DockerUI:Go编写的Web版Docker管理工具 http://liubin.org/2014/02/18/dockerui-web-based-docker-management-tool/

透过proxy进行docker pull http://blog.csdn.net/halcyonbaby/article/details/39475765
或者直接修改/etc/hosts文件
162.242.195.84 index.docker.io
162.242.195.84 www.docker.io
162.242.195.84 registry-1.docker.io
162.242.195.84这个地址是ping www.docker.io得到的

安装 Docker
$ sudo yum install docker
$ sudo service docker start
$ sudo chkconfig docker on

配置文件:
sudo vim /etc/sysconfig/docker

1. 建立一个守护态运行的容器, 需要加参数-t -i, 之后才能用attach命令进入容器.

2. 安装网络配置工具:pipework, 官方文档https://github.com/jpetazzo/pipework
https://github.com/jpetazzo/pipework/blob/master/pipework复制代码保存为一个文件, 取名叫pipework, 复制到cp pipework /usr/local/bin/, 付给权限chmod u+x /usr/local/bin/pipework, 输入pipework命令回车, 显示帮助信息, 表示成功. 这里是一个简短的教程http://blog.sina.com.cn/s/blog_d840ff330102v50o.html
docker网络之pipeworkhttp://www.51gocloud.com/?p=1154
# 创建网络
brctl addbr br0
ip link set dev br0 up
ip addr add 192.168.2.1/24 dev br0

# 创建容器
# 方法1
DB=$(docker run -d –name db pandy/centos7-postgresql931)
pipework br0 $DB 192.168.2.100/24
# 方法2
docker run -d –name db pandy/centos7-postgresql931
pipework br0 db 192.168.2.100/24

# 删除容器之后删除网络
ip link set br0 down
brctl delbr br0

自动启动容器
方法1:
也就是如何开机启动对应的容器,主要有两步操作:
1. 关闭Docker的自动启动特性-r=false, sudo vim /etc/sysconfig/docker, 追加DOCKER_OPTS=”$DOCKER_OPTS -r=false”
2. 配合upstart或者systemd的配置文件,调用Docker命令来开机启动
A:编写属于自己的unit文件,命令为dockerboard.service,整个文件如下:
sudo vim /usr/lib/systemd/system/dockerboard.service

Java代码
  1. [Unit]
  2. Description=Dockerboard container
  3. After=docker.service
  4. [Service]
  5. Type=forking
  6. Restart=always
  7. ExecStart=/usr/bin/docker start dockerboard
  8. [Install]
  9. WantedBy=multi-user.target

B:将dockerboard.service注册到系统当中执行命令:
# sudo systemctl enable dockerboard.service
#systemctl –failed   输出运行失败的单元:

方法2: http://www.bubuko.com/infodetail-579956.html
重启策略:
使用在Docker run的时候使用–restart参数来设置。
no – container不重启
on-failure – container推出状态非0时重启
always – 始终重启

loopback问题:
Usage of loopback devices is strongly discouraged for production use. Either use --storage-opt dm.thinpooldev or use --storage-opt dm.no_warn_on_loop_devices=true to suppress this warning.

从其他服务器pull镜像
sudo docker pull dl.dockerpool.com:5000/ubuntu:12.04

/var/run/docker.sock: no such file or directory
sudo apt-get install apparmor
service docker restart

Dockerfile使用方法

Docker Dockerfile详解 http://my.oschina.net/2xixi/blog/516951#OSC_h4_7

官方Dockerfile列表:https://github.com/CentOS/CentOS-Dockerfiles
wmarinho / postgresql-v9.3-centos https://registry.hub.docker.com/u/wmarinho/postgresql-v9.3-centos/dockerfile/
原文:http://www.blogjava.net/yongboy/archive/2015/03/05/407643.html
编写一个Dockerfile
所有环境,同第一篇文字。在ubuntu下安装好vim之后(吐槽一下,ubuntu系统内置vi命令十分难用,只好求助于vim ):

sudo vim Dockerfile
编辑一个Dockerfile文件了,下面就是具体文件内容:

# VERSION 0.0.1
# 默认ubuntu server长期支持版本,当前是12.04
FROM ubuntu
# 签名啦
MAINTAINER yongboy “yongboy@gmail.com”

# 更新源,安装ssh server
RUN echo “deb http://archive.ubuntu.com/ubuntu precise main universe”> /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y openssh-server
RUN mkdir -p /var/run/sshd

# 设置root ssh远程登录密码为123456
RUN echo “root:123456” | chpasswd

# 添加orache java7源,一次性安装vim,wget,curl,java7,tomcat7等必备软件
RUN apt-get install python-software-properties
RUN add-apt-repository ppa:webupd8team/java
RUN apt-get update
RUN apt-get install -y vim wget curl oracle-java7-installer tomcat7

# 设置JAVA_HOME环境变量
RUN update-alternatives –display java
RUN echo “JAVA_HOME=/usr/lib/jvm/java-7-oracle”>> /etc/environment
RUN echo “JAVA_HOME=/usr/lib/jvm/java-7-oracle”>> /etc/default/tomcat7

# 容器需要开放SSH 22端口
EXPOSE 22

# 容器需要开放Tomcat 8080端口
EXPOSE 8080

# 设置Tomcat7初始化运行,SSH终端服务器作为后台运行
ENTRYPOINT service tomcat7 start && /usr/sbin/sshd -D

构建镜像
脚本写好了,需要转换成镜像:

Java代码
  1. docker build -t yongboy/java7 .

-t: 为构建的镜像制定一个标签,便于记忆/索引等
. : 指定Dockerfile文件在当前目录下

网速不太好,会等待很长时间。很多操作可能需要科学上网,逼得我只能一直挂着VPN,方能畅通无阻。

构建镜像完成之后,看看运行效果

Java代码
  1. docker run -d -p 22 -p 8080:8080 yongboy/java7

在运行命令中,还得需要显式指定 -p 22 -p 8080:8080,否则在Docker 0.8.1版本中不会主动映射到宿主机上。据悉在Docker 0.4.8版本时,就不担心这个问题。 或者,您要有好的方式,不妨告知于我,谢谢。

在Dockerfile中,若没有使用ENTRYPOINT/CMD指令,若运行多个命令,可以这样做:

Java代码
  1. docker run -d -p 22 -p 8080 yongboy/java7 /bin/sh -c “service tomcat7 start && /usr/sbin/sshd -D”

提交/保存镜像
创建好的镜像,可以保存到索引仓库中,便于下次使用(当然,我们直接共享Dockerfile,是最简单的事情,:)) ),但毕竟镜像可以做到开箱即用。
https://index.docker.io/ 注册一个账号,例如yongboy

构建镜像
docker build -t yongboy/java7 .
上面已经构建OK的话,可省略此步。

登陆
docker login

提交到Docker索引仓库
docker push yongboy/java7
现在可以起来喝杯热水,出去溜达会,也不一定能够上传完毕,那叫一个慢啊!

上传OK的话,可以得到类似地址:https://index.docker.io/u/yongboy/java7/

如何使用镜像

Java代码
  1. docker pull yongboy/java7

剩下的步骤,就很简单了。

小结
有关Dockerfile的进阶阅读:
http://www.docker.io/learn/dockerfile/level2/
http://www.docker.io/learn/dockerfile/level2/