Docker 的一个 Web 管理界面 Shipyard

Docker 的命令行就已经很好用了,如果非要加上基于 Web 的管理界面的话也有一些选择,如 DockerUI (Angular.js), Dockland (Ruby), Shipyard (Python/Django) 等,不过目前来看 Shipyard 项目要活跃一点,Shipyard 支持多 host,可以把多个 Docker host 上的 containers 统一管理;可以查看 images,甚至 build images;并提供 RESTful API 等等。

Shipyard 要管理和控制 Docker host 的话需要先修改 Docker host 上的默认配置使其支持远程管理。修改配置文件 docker.conf,把 /usr/bin/docker -d 这行加上 -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock 参数:

$ sudo vi /etc/init/docker.conf
description     "Run docker"

start on filesystem or runlevel [2345]
stop on runlevel [!2345]

respawn

script
    /usr/bin/docker -d -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock
end script

可以独立安装 Shipyard 也可以把 Shipyard 安装在一个 Docker 容器里。如果有人提供了 Docker 镜像甚至连安装的过程也省了,直接下载运行就可以了,Shipyard 的作者就提供了这么一个镜像(需要注意的是这里的默认登录用户名和密码是 admin/shipyard):

$ sudo docker pull shipyard/shipyard

$ sudo docker run -i -t -d -p 80:80 -p 8000:8000 ehazlett/shipyard

如果不想使用上面的 Docker 镜像,想直接安装在服务器上的话也不是很麻烦,可以自行设置登录用户名和密码:

$ git clone https://github.com/shipyard/shipyard.git
$ cd shipyard/

$ sudo pip install -r requirements.txt
$ sudo python manage.py syncdb --noinput
$ sudo python manage.py migrate
$ sudo python manage.py createsuperuser
Username (leave blank to use 'root'):admin
Email address: test@vpsee.com
Password:
Password (again):
Superuser created successfully.

$ sudo python manage.py runserver 0.0.0.0:8000
Validating models...

0 errors found
November 15, 2013 - 03:46:23
Django version 1.6, using settings 'shipyard.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.

开另一个终端或 ssh 会话输入以下命令:

$ sudo python manage.py celery worker -B --scheduler=djcelery.schedulers.DatabaseScheduler -E

安装成功后打开浏览器访问 http://192.168.2.45:8000/ 就可以看到登录界面,输入用户名和密码登录成功后到左边的 Hosts 里添加一个 Docker host,输入 Docker host 的 IP 地址就可以了:

a docker web ui

成功添加一个 Docker host 后就可以访问到这台 host 上正在运行的 containers 以及保存的 images 了:

a docker web ui

评论 (10 Comments)

  1. 希望稳定版本能早日出来

  2. 博主,你好。

    最近在调研docker,搜索引擎把我带到博主这篇好文章,大赞!有一个小小的疑问想请教一下,博主文章中提到的直接在服务器上安装shipyard的过程是怎么得到的呢?我把官方的wiki看了一遍,没找到相关的内容。

    我想搞清楚的是,官方是否也支持这种直接在服务器上安装的方法,因为我在wiki里面看到的都是直接用docker run命令跑他上传的镜像。还望博主不吝赐教

  3. @相见欢
    https://github.com/shipyard/shipyard 官方文档里就有直接安装的方法啊:
    pip install -r requirements.txt
    python manage.py syncdb –noinput
    python manage.py migrate
    python manage.py createsuperuser
    python manage.py runserver
    python manage.py celery worker -B –scheduler=djcelery.schedulers.DatabaseScheduler -E (in another terminal)
    Open browser to http://localhost:8000
    Add a host (i.e. 127.0.0.1 for local docker)

  4. 我运行python manage.py migrate 的时候
    root@proxy:~/shipyard# python manage.py migrate
    Running migrations for djcelery:
    – Nothing to migrate.
    – Loading initial data for djcelery.
    Installed 0 object(s) from 0 fixture(s)
    Running migrations for accounts:
    – Nothing to migrate.
    – Loading initial data for accounts.
    Installed 0 object(s) from 0 fixture(s)
    Running migrations for containers:
    – Nothing to migrate.
    – Loading initial data for containers.
    Installed 0 object(s) from 0 fixture(s)
    Running migrations for applications:
    – Nothing to migrate.
    – Loading initial data for applications.
    Installed 0 object(s) from 0 fixture(s)
    Running migrations for tastypie:
    – Nothing to migrate.
    – Loading initial data for tastypie.
    Installed 0 object(s) from 0 fixture(s)
    root@proxy:~/shipyard#

  5. 目前shipyard 已经变成go语言了吧~

  6. 现在变成go语言后,怎样搭建开发环境啊 ?
    看 github.com 上的做法就是弄到docker container 中去了。

  7. 更新的好快。。。。

  8. 博主,现在我用镜像和手动配置,都不能成功。可以进入界面,然后就没了

  9. 官方自动部署成功
    登录进去后
    开始很正常 容器和镜像都能看到
    过不了几分钟 容器和镜像都看不到了 是怎么回事?
    显示

    Containers

    There are no containers.

    Images

    There are no images in the cluster.

  10. 翻了网上的关于shipyard的文章,貌似都是在一个容器里运行,可是这个容器我没办法下载出来,我的测试机器上不了网,如何是好呢?从github上下来的源码里 也没有requirements.txt 和manager.py 苦恼啊

发表评论