Docker 的命令行就已经非常好用了,假设非要加上基于 Web 的管理界面的话也有一些选择,如 DockerUI (Angular.js), Dockland (Ruby), Shipyard (Python/Django) 等。只是眼下来看 Shipyard 项目要活跃一点,Shipyard
支持多 host,能够把多个 Docker host 上的 containers 统一管理;能够查看 images,甚至 build images;并提供 RESTful API 等等。
起初尝试通过Centos7 来安装shipyard,可是安装了好久。总是出现shipyard/shipyard镜像不能启动容器,通过查看日志,报一下异常:
time="2015-04-20T03:35:12-04:00" level=fatal msg="Error response from daemon:
Cannot start container 4df4e127d80dbfbf26a972a00f51085570fff275554979e80901ee93c7f69b29: [8]
System error: [/usr/bin/tar -cf /var/lib/docker/tmp/4df4e127d80dbfbf26a972a00f51085570fff275554979e80901ee93c7f69b29725221613
/_run.tar -C /var/lib/docker/devicemapper/mnt/4df4e127d80dbfbf26a972a00f51085570fff275554979e80901ee93c7f69b29/rootfs/run .]
failed: : fork/exec /usr/bin/tar: no such file or directory"
后来在网上查了非常多资料,最终找到了原因,原来是docker版本号的问题,通过Centos7安装的Docker版本号是1.6,这个问题在Docker 1.6.2中被解决。
具体描写叙述请查看:https://bugzilla.redhat.com/show_bug.cgi?id=1213258
因为眼下CoreOS自带的Docker版本号为1.6.2所以将演示系统换成CoreOS.
演示过程主要在两台CoreOS的虚拟机上演示(虚拟机A,虚拟机B)。虚拟机A用来安装shipyard,虚拟机B用来被shipyard管理
虚拟机A的操作
- 实际上如今安装非常easy了, docker的方式仅仅须要下载容器并加些參数执行就可以,依次执行下面命令
docker run -it -d --name shipyard-rethinkdb-data --entrypoint /bin/bash shipyard/rethinkdb -l
docker run -it -P -d --name shipyard-rethinkdb --volumes-from shipyard-rethinkdb-data shipyard/rethinkdb
docker run -it -p 8080:8080 -d --name shipyard --link shipyard-rethinkdb:rethinkdb shipyard/shipyard
具体的安装方式能够參考:http://shipyard-project.com/docs/quickstart/ - 运行完的效果例如以下:
- 启动完容器后,登录页面http://10.0.0.137:8080/ usernamepassword是admin/shipyard,登录成功后效果例如以下
虚拟机B的操作
- 停止docker服务
systemctl stop docker - 以port监听的方式启动docker服务
/usr/bin/docker -H 0.0.0.0:2375 -d
绑定端口的执行方式能够參考:http://docs.docker.com/articles/basics/#bind-docker-to-another-hostport-or-a-unix-socket
shipyard服务的操作
- 加入主机
- 当前的版本号存在Bug,假设想要点击Containers,必需要首先在虚拟机B中手动的方式执行一个容器。否则该标签无法点击