1. 介绍

portainer是一款docker容器管理工具,基于swarmkit提供了图形化的管理界面。功能主要包含:

  1. 镜像管理
  2. 网络管理
  3. 数据卷管理
  4. 应用模板
  5. 状态面板

类似工具还有crane、 rancher和docker datacenter(ddc,收费的)。 这里面portainer和rancher相对比较成熟,而且也是免费和开源的。本文先对portainer做介绍。对rancher感兴趣的可以查看我的另外一篇博客:使用rancher管理docker

2. 安装和启动

详情可以参考官方部署文档,这里我仅仅做简单说明。

2.1 安装

docker pull portainer/portainer

2.2 启动

启动portainer有多种方式。详情可以参考: 官方说明

一般情况下我们都使用swarm来管理集群,因此这里我只说明如何集成swarm来启动portainer。关于swarm的安装和使用,可以参考我的另外一篇博客docker swarm安装使用

启动一般有两种方式

2.2.1 简单的作为容器启动

# 指向swarm manager所在的机器
docker run --name portainer -d -p 9000:9000 portainer/portainer  -H tcp://10.45.10.31:2375

2.2.2 作为一个service启动(推荐)

# 启动服务
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

3. 配置

3.1 设置开启docker的2375端口

确保开启Docker的TCP连接端口。

#centos: 
vim /lib/systemd/system/docker.service
# 修改ExecStart所在的这一行为如下内容
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375  -H unix:///var/run/docker.sock 
# 重新启动服务
systemctl daemon-reload && service docker restart

#ubuntu: 
vim /etc/default/docker

OCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"

service docker restart 

2375为Docker默认的tcp通讯端口,稍后在使用主机连接时需要用到。

3.2 设置密码

默认的管理员账户为admin,从浏览器访问portainer所在机器的9000端口,会提示设置admin用户密码。

4. 查看portainer

下图显示了swarm集群的情况。经过简单使用,发现portainer的功能还算比较全,不过在CI和CD上仍然比较薄弱。此外对service的运维功能仍然比较欠缺,例如更新升级、回滚操作等等。一般来说要求不高可以使用portainer,如果对功能上有更加强大的需求的话,可以考虑使用rancher。