Portainer
是Docker
的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm
集群和服务等集中管理和操作、登录用户管理和控制等功能。功能十分全面,基本能满足中小型单位对容器管理的全部需求。
下载Portainer镜像
# 查询当前有哪些Portainer镜像
docker search portainer
上图就是查询出来的有下载量的portainer镜像,我们下载第一个镜像:docker.io/portainer/portainer
。
# 下载镜像
docker pull docker.io/portainer/portainer
单机版运行
如果仅有一个docker
宿主机,则可使用单机版运行,Portainer
单机版运行十分简单,只需要一条语句即可启动容器,来管理该机器上的docker镜像、容器等数据。
docker run -d -p 9000:9000 \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
--name prtainer-test \
docker.io/portainer/portainer
该语句用宿主机9000
端口关联容器中的9000
端口,并给容器起名为portainer-test
。执行完该命令之后,使用该机器IP:PORT
即可访问Portainer
。
docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name portainer docker.io/portainer/portainer
访问方式:http://IP:9000
首次登陆需要注册用户,给admin
用户设置密码:
单机版这里选择local
即可,选择完毕,点击Connect
即可连接到本地docker
:
注意:该页面上有提示需要挂载本地 /var/run/docker.socker
与容器内的/var/run/docker.socker
连接。因此,在启动时必须指定该挂载文件。
首页:
容器列表:
点击容器列表中的容器名Name
,即可查看容器详情:
并且在容器详情页可以使用该容器创建镜像:
镜像列表(在镜像列表可以直接pull
一个镜像,可以从远程pull
,也可以从私有库中pull
。从私有库中pull
,需要将私有库的地址提前进行配置,这个在后面会说):
点击镜像ID
,即可查看镜像详情信息,在详情信息页面,除了镜像的一些信息外,还可以对该镜像进行打标签tag
操作,然后将镜像push
到远程仓库或者私有仓库中。
仓库管理页面(该界面可以查看配置的镜像仓库列表,同时可以添加仓库,添加成功之后,即可在image
镜像页面进行pull
、push
操作。):
添加镜像仓库:
Portainer
中还有一些别的操作,比如权限管理、网络管理等等,可以安装上进行了解学习。
集群运行
更多的情况下,我们会有一个docker
集群,可能有几台机器,也可能有几十台机器,因此,进行集群管理就十分重要了,Portainer
也支持集群管理,Portainer
可以和Swarm
一起来进行集群管理操作。这里我首先搭建了一个Swarm
。
portainer集群方式启动(这里我喜欢通过简单启动的方式,然后在界面上进行节点的添加):
docker run -d -p 9000:9000 --restart=always --name prtainer-test docker.io/portainer/portainer
启动Portainer
之后,首页还是给admin
用户设置密码(这里和单机启动一样)。接下来是设置节点了,如下图:
这里我们选择Remote
这个模块,下面会要求添加一个名字以及节点URL
,名字可以自取,只要能够理解即可,Endpoint URL
是Swarm
集群中设置的节点URL
,比如我机器IP是10.0.11.152
,监听的端口是默认的2375
,则这里的URL就写:10.0.11.152:2375
。
如果是集群方式启动,建议portainer安装启动在Swarm管理节点,并且首次设置Endpoint URL时设置管理节点的URL。
填写完毕点击Connect
即可进入管理页面。在管理页面左上角会显示管理的集群节点列表:
想要查看那个节点的信息,则点击节点即可。镜像、容器操作与单机模式下基本一样。这里只需要说下节点添加。
点击导航栏Endpoints进入节点列表页面:
从上图中一目了然就应该知道如何添加节点了,需要填写一个名字Name
、Endpoint URL
以及节点IP
,就可以添加一个集群节点了,十分简单。