Portainer安装
0、下载镜像
从github查看release,下载需要的版本
拉取镜像
docker pull portainer/portainer:1.23.2
漏洞
FortiGuard实验室在2019年9月向Portainer报告了7个漏洞,最好的修复建议是尽快升级到Portainer release 1.23.0
1、运行portainer
Portainer运行方式有以下两种方式:
1.1 单机版运行
如果你只有一个docker宿主机,则可使用单机版运行,运行以下命令就可以启动了:
docker run -d --net=host --restart=unless-stopped -v /var/run/docker.sock:/var/run/docker.sock -v /data/portainer_data:/data portainer/portainer:1.23.2
docker run 参数说明:
- -restart=unless-stopped #在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
- -v /var/run/docker.sock:/var/run/docker.sock #容器中的进程可以通过它与Docker守护进程进行通信
- -d #后台模式
- --name portainer #容器命名为portainer
- --net=host #启用主机网络
端口说明 : 9000 浏览器访问 8000 agent接入端口
访问Portainer
访问方式:http://IP:9000,首次登陆需要注册用户,给admin
用户设置密码
选择管理的环境
这里使用Local,我们在启动容器的时候,已经把/var/run/docker.sock挂载到容器内了,使portainer可以与外部docker daemon 进行交互。
进入主页
添加Endpoint
添加成功后,Endpoints和HOME都可以看到
1.2 集群版运行
在有多台Docker的情况下,进行集群管理就十分重要了,Portainer也支持集群管理,Portainer可以和Swarm一起来进行集群管理操作。这里我首先搭建了一个Swarm 便于演示。
初始化swarm
node1 初始化一个swarm集群
[root@node1 data]$ docker swarm init --advertise-addr 172.16.35.10
Swarm initialized: current node (t5x39czm6lciu9wgy0nzbquof) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-1orufsy9a7gephgjl9joaf43egwec08854fnm9j9tbwx3siny7-435rgdmwvkirnm2nognbq1j1x 172.16.35.10:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
node2 加入swarm集群
[root@node2 docker]$ docker swarm join --token SWMTKN-1-1orufsy9a7gephgjl9joaf43egwec08854fnm9j9tbwx3siny7-435rgdmwvkirnm2nognbq1j1x 172.16.35.10:2377
This node joined a swarm as a worker.
启动集群
安装方式和 单机版一样
启动Portainer之后,首页还是给admin用户设置密码(这里和单机启动一样)。
因为是集群方式启动,建议portainer安装启动在Swarm管理节点,并且首次设置Endpoint URL时设置管理节点的URL
点击swarm,可以查看集群
操作与单机模式下基本一样。
Portainer的基本操作就这么多,具体的操作步骤还需要大家自己去学习理解。
示例
点击左侧栏container,然后点击add container
输入name,image这里直接输入想要拉取的镜像“80x86/typecho:amd64”,点击下方的deploy即可进行安装。
安装后返回home可以看到容器的状态,可以看到正在启动
使用默认安装的话,可以看到端口这里是空的,那我们怎么访问我们的容器呢,现在来完善一下容器的设置,点击容器名
点击如图所示的按钮进行配置
这里有2个选项,第一个是随机分配端口号来映射容器。第二个是手动指定端口号。
这里演示固定端口
点击deploy,会弹出对话框,点击repalce
可以看到刚刚的容器列表里显示出来端口号信息了
浏览器访问正常
实现挂载也很方便
查看挂载
[root@node1 ~]$ cd /data
[root@node1 data]$ ls
portainer_data typecho
[root@node1 data]$ cd typecho/
[root@node1 typecho]$ ls
log plugins themes