随着Linux容器管理技术和工具的进步,诞生了docker等一大批著名的容器管理工具,现在介绍一下这个docker的容器管理工具的安装。

portainer简介

官网地址

技术文档

Portainer is a lightweight management UI which allows you to easily manage your different Docker environments (Docker hosts or Swarm clusters). Portainer is meant to be as simple to deploy as it is to use. It consists of a single container that can run on any Docker engine (can be deployed as Linux container or a Windows s native container, supports other platforms too). Portainer allows you to manage all your Docker resources (containers, images, volumes, networks and more) ! It is compatible with the standalone Docker engine and with Docker Swarm mode.

翻译如下:

Portainer是一个轻量级的管理UI,可让您轻松管理不同的Docker环境(Docker主机或Swarm集群)。 Portainer的意图是易于部署和使用。 它由一个可以在任何Docker引擎上运行的容器组成(可以部署为Linux容器或Windows s本机容器,也支持其他平台)。 Portainer允许您管理所有Docker资源(容器,映像,卷,网络等)! 它与独立的Docker引擎和Docker Swarm模式兼容。

使用Docker安装Portainer

Portainer由两个元素组成,即Portainer服务器和Portainer代理。这两个元素都作为轻量级Docker容器在Docker引擎或Swarm集群中运行。由于Docker的性质,存在许多可能的部署方案,但是,我们在下面详细介绍了最常见的方案。请使用与您的配置匹配的方案(或者,如果未列出您的配置,请参见portainer.readthedocs.io以获取其他选项)。

单机管理

Windows 平台安装方法

1
2
3
docker pull portainer/portainer
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart always -v \\.\pipe\docker_engine:\\.\pipe\docker_engine -v portainer_data:C:\data portainer/portainer

注意: \\.\pipe\docker_engine:\\.\pipe\docker_engine只能在Windows s 1803+环境下面使用。

Linux平台安装方法

1
2
3
docker pull portainer/portainer
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

注意: -v /var/run/docker.sock:/var/run/docker.sock 只能在Linux环境中使用。

配置站点

  • 打开游览器,输入http://localhost:9000(Windows平台)或者http://{服务器ip}:9000(Linux平台);

  • 设置用户名和密码后进入。

docker面板
docker面板
  • 管理面板
docker面板
docker面板

集群管理

Windows 集群管理

部署Portainer代理可以来管理Windows 2016(1803)或Windows 2019(10903)Swarm,你可以将Portainer作为服务直接部署在Docker集群中。

请注意,此方法将自动部署Portainer Server的单个实例,并将Portainer Agent作为全局服务部署在群集中的每个节点上。

方法如下:

1
2
curl https://downloads.portainer.io/portainer_windows_stack.yml -o portainer_windows_stack.yml
docker stack deploy --compose-file=portainer_windows_stack.yml portainer

注意:请确保集群中的服务器docker主机公开了所需的网络端口。

1
2
3
4
5
6
netsh advfirewall firewall add rule name="cluster_management" dir=in action=allow protocol=TCP localport=2377
netsh advfirewall firewall add rule name="node_communication_tcp" dir=in action=allow protocol=TCP localport=7946
netsh advfirewall firewall add rule name="node_communication_udp" dir=in action=allow protocol=UDP localport=7946
netsh advfirewall firewall add rule name="overlay_network" dir=in action=allow protocol=UDP localport=4789
netsh advfirewall firewall add rule name="swarm_dns_tcp" dir=in action=allow protocol=TCP localport=53
netsh advfirewall firewall add rule name="swarm_dns_udp" dir=in action=allow protocol=UDP localport=53

补充:

  • 独立的Windows server 2016 docker主机代理
1
docker run -d -p 9001:9001 --name portainer_agent --restart=always -v \\.\pipe\docker_engine:\\.\pipe\docker_engine portainer/agent
  • 作为节点的主机代理
1
docker run -d -p 9001:9001 --name portainer_agent --restart=always -v \\.\pipe\docker_engine:\\.\pipe\docker_engine -e AGENT_CLUSTER_ADDR=tasks.agent portainer/agent

linux集群管理

在远程LINUX群集上将Portainer Agent部署为Swarm服务,在远程群集中的管理节点上运行此命令:

1
docker service create --name portainer_agent --network portainer_agent_network --publish mode=host,target=9001,published=9001 -e AGENT_CLUSTER_ADDR=tasks.portainer_agent --mode global --mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock --mount type=bind,src=//var/lib/docker/volumes,dst=/var/lib/docker/volumes –-mount type=bind,src=/,dst=/host portainer/agent

最后

docker容器UI管理工具Portainer的使用方法就介绍到这里。