reference:http://blog.csdn.net/qq273681448/article/details/75007828
最近,为了方便对命令行过敏的测试或开发人员,我决定部署一个可视化的管理平台来管理docker,在我重装十几次系统(当然,只是虚拟机镜像克隆),对比之后,终于选择了一款心仪的管理平台。
安装/升级你的Docker环境,建议使用过阿里云的镜像仓库下载:mirrors.aliyun.com/help/docker-engine
或执行以下命令:
curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
另外,建议使用阿里云的镜像加速,以方便后期pull 镜像。申请个人唯一加速地址https://cr.console.aliyun.com/
通过修改daemon配置文件/etc/docker/daemon.json来使用加速器:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://***.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
DockerUI基于Docker API,提供等同Docker命令行的大部分功能。
[root@localhost ~]# docker pull uifd/ui-for-docker
Using default tag: latest
latest: Pulling from uifd/ui-for-docker
841194d080c8: Pull complete
Digest: sha256:fe371ff5a69549269b24073a5ab1244dd4c0b834cbadf244870572150b1cb749
Status: Downloaded newer image for uifd/ui-for-docker:latest
[root@localhost ~]# docker run -it -d --name docker-web -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock docker.io/uifd/ui-for-docker
ac85040b8a9f2f203c22ba2e4d90a830e31d89a1d6ce77579a7b95de5da51e01
拉取镜像
docker pull uifd/ui-for-docker
启动容器
docker run -it -d --name docker-web -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock docker.io/uifd/ui-for-docker
打开ip:9000,首页:
容器管理:
容器网络,这里可以显示容器与容器之间的关系。
容器管理:
因为没有登录体系,所以很难在公司里流通。因为这样,每个人都可以去控制,即使通过TLS来控制权限,但无法将容器管理权限分配给某个用户,所以最终放弃该平台。
Shipyard是在Docker Swarm的基础上,管理Docker资源,包括容器,镜像,注册表等。
这里以官网自动化部署为例,部署代码如下
curl -sSL https://shipyard-project.com/deploy | bash -s
注意:这将在端口2375上暴露Docker Engine。如果此节点可以在安全网络之外访问,建议使用TLS。
支持集群,所以可以添加节点:
curl -sSL https://shipyard-project.com/deploy | ACTION=node DISCOVERY=etcd://10.0.0.10:4001 bash -s
其中上段代码中ip地址,为第一台服务器的ip地址。
结果它硬生生的启动了7个容器,其中2个swarm的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fb81fb51d619 shipyard/shipyard:latest "/bin/controller -..." 2 minutes ago Up 37 seconds 0.0.0.0:8080->8080/tcp shipyard-controller
e9e462e168ea swarm:latest "/swarm j --addr 1..." 2 minutes ago Up 2 minutes 2375/tcp shipyard-swarm-agent
8913ed62608d swarm:latest "/swarm m --replic..." 2 minutes ago Up 2 minutes 2375/tcp shipyard-swarm-manager
ee1e25e0235d shipyard/docker-proxy:latest "/usr/local/bin/run" 2 minutes ago Up 2 minutes 0.0.0.0:2375->2375/tcp shipyard-proxy
f10edb7eda1c alpine "sh" 3 minutes ago Up 3 minutes shipyard-certs
6411b4226a6f microbox/etcd:latest "/bin/etcd -addr 1..." 3 minutes ago Up 3 minutes 0.0.0.0:4001->4001/tcp, 0.0.0.0:7001->7001/tcp shipyard-discovery
eaf008cbebae rethinkdb "rethinkdb --bind all" 3 minutes ago Up 3 minutes 8080/tcp, 28015/tcp, 29015/tcp shipyard-rethinkdb
增加节点的话,节点机器会自动运行5个容器,不得不说功能强大,还是有代价的。
总体上讲Shipyard功能强大,实用型高,支持集群,支持容器权限分配,是公司不二之选,但是考虑到暂时经常打不开首页,且占用每台服务器较多资源,暂时列为备选方案。
Portainer是一款轻量级docker容器管理平台,占用资源少,支持集群,支持权限分配。
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer
部署Portainer来管理Swarm群集,也可以在Docker群集中直接部署Portainer作为服务。
docker service create \
--name portainer \
--publish 9000:9000 \
--constraint 'node.role == manager' \
--mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock \
portainer/portainer \
-H unix:///var/run/docker.sock
虽然Portainer存在一些问题,但已经可以满足基本需求,且支持权限分配,最终我选择了它。
Daocloud 是一个老牌的第三方管理平台,可以自由增加机器节点,功能极其强大。
登录注册https://dashboard.daocloud.io
增加主机节点
curl -sSL https://get.daocloud.io/daomonit/install.sh | sh -s ****密钥
容器列表
容器日志
容器管理
可部署多个容器,扩容
镜像平台
因为闭源,且收费,暂且团队放弃它,,但作为自己测试使用,强烈推荐使用它,因为我们点点鼠标即可轻松部署一个强大的管理docker平台。
经过对docker管理平台的分析,相信大家一定有了自己的认识,有条件可以自己尝试下部署,如果有新的心得体会或者更好的平台记得告诉我哦。
觉得好的话,记得关注我哦!
掘金:
https://juejin.im/user/57cd55218ac247006459c40c
Github:
https://github.com/qq273681448