问题导读
1、什么是Shipyard,有哪些功能?
2、如何在Docker的web界面中添加一个 Docker host?
3、docker的web管理界面有哪些?
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 地址就可以了:
成功添加一个 Docker host 后就可以访问到这台 host 上正在运行的 containers 以及保存的 images 了:
|