What is Portainer?
html
Portainer是一款轻量级的图形化管理工具,经过它咱们能够轻松管理不一样的docker环境。Portainer部署和使用都很是的简单,它由一个能够运行在任何docker引擎上的容器组成。Portainer提供管理docker的containers、images、volumes、networks等等。它兼容独立的docker环境和swarm集群模式。基本知足中小型单位对docker容器的管理工做。node
快速部署nginx
从仓库中查询Portainer相关镜像:
docker
[root@centos7 ~]# docker search portainer
拉取Portainer镜像到本地:
json
[root@centos7 ~]# docker pull portainer/portainer
查看本地主机上的镜像:
centos
单机安装
浏览器
若是只有一个docker宿主机,能够使用如下命令安装:安全
[root@centos7 ~]# docker volume create portainer_data [root@centos7 ~]# docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
Swarm集群下安装bash
使用Portainer提供的代理安装程序在Swarm集群下部署:网络
[root@centos7 ~]# curl -L https://portainer.io/download/portainer-agent-stack.yml -o portainer-agent-stack.yml [root@centos7 ~]#docker stack deploy --compose-file=portainer-agent-stack.yml portainer
更多场景下部署方法能够参考如下:https://portainer.readthedocs.io/en/stable/index.html
单机环境中安装完成以后,能够经过浏览机对9000端口进行访问。如:http://192.168.39.185:9000
首次登录须要注册用户:
因为是单机环境下安装,选择local模式便可:
注意:该页面上有提示须要挂载本地 /var/run/docker.socker与容器内的/var/run/docker.socker链接。所以,在启动时必须指定该挂载文件。
进入首页能够查看到本地环境下docker相关的信息如容器,镜像等等。
点击“local“,查看本地docker相关信息:
点击“Containers”查看容器相关信息:
能够进行建立容器、启动、中止、删除等等操做很是的方便。
点击“Name”,能够查看相关容器详细信息:
在容器列表页面下,点击“Add Containers”能够进行容器的建立:
输入相关信息点击“deploy the container”,能够根据已有的镜像快速建立容器:
浏览器打开刚才建立的nginx容器:
Portainer中还有不少对容器有意思的操做管理,诸如提供容器状态监控视图、容器状态日志、经过console登录容器等等。
Portainer中还有一些不少其余的操做,好比stacks管理、镜像管理、卷管理、权限管理、网络管理等等,能够安装上进行了解学习。
如镜像管理,能够查看到全部的镜像相关列表,在镜像列表能够直接pull一个镜像,能够从远程pull,也能够从私有库中pull。从私有库中pull,须要将私有库的地址提早进行配置。
Portainer多docker宿主机环境下管理
添加docker节点
首先在docker个节点中须要开启远程管理端口:2375或2376(支持ca认证,此端口较安全)
开启2375端口,可能致使安全漏洞的出现,如下有详细介绍:https://blog.csdn.net/ghostcloud2016/article/details/51539837
开启2376端口比较复杂,能够浏览如下:https://docs.docker.com/engine/security/https/
编辑/etc/docker/daemon.json,添加以下:
{ "hosts": ["tcp://192.168.39.100:2375", "unix:///var/run/docker.sock"] }
注意:192.168.39.100为docker所在宿主机ip
重启docker服务
# systemctl restart docker Warning: docker.service changed on disk. Run 'systemctl daemon-reload' to reload units.
能够查看到端口已经开放:
在docker其余节点能够经过docker -H 192.168.39.100:2375 info命令查看到该节点docker相关信息。
点击Home页面下“add endportainer”添加该节点docker信息:
输入如下相关信息,点击“add endpoartainer”添加信息便可:
能够看到添加docker-node1节点成功:
添加各个docker节点完成,这样能够经过portainer对每一个节点下的docker环境进行相关的管理操做。
Portanier管理Swarm集群
Portainer管理swarm集群时,确保环境下已经设置好Swarm集群,若是没有设置能够参考Docker三剑客之Swarm
Master节点下安装Portainer服务:
[root@centos7 ~]# 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 j6mzodyhsilp6i266w7d0i4ty overall progress: 1 out of 1 tasks 1/1: running [==================================================>] verify: Service converged
查看Portainer服务:
[root@centos7 ~]# docker service ls ID NAME MODE REPLICAS IMAGE PORTS j6mzodyhsilp portainer replicated 1/1 portainer/portainer:latest *:9000->9000/tcp
安装完成以后,打开浏览器输入http://{ip}:9000一样会出现登录密码的设置界:
设置完账号和密码,登录主界面,能够查看到swarm集群信息:
点击“Swarm”,能够查看到个集群节点信息:
点击“Image”,拉取一个nginx镜像:
在Services下建立nginx服务,这里建立4个副本,并将80端口映射出去,最后点击“Create Service”建立服务:
查看service list 列表会发现,nginx服务已经建立成功:
浏览器中输入个节点ip地址,均可以看到nginx页面以下:
经过命令能够查看到nginx服务运行状态: