docker系列 搭建基于portainer的图形化docker管理界面
本文最后更新于 338 天前,其中的信息可能已经有所发展或是发生改变,如有失效可到评论区留言。

前言

平时我们在搭建docker的时候,不管是用docker run命令还是docker compose命令,都是在终端里用命令完成的,而需要查看各种docker状态的时候,虽然依旧可以用命令完成,但是总的来说却不甚直观。

虽然win,mac,linux下都有对应的docker desktop可以安装,但是除非平时都作为桌面终端使用,否则为了使用GUI界面管理还必须先使用远程桌面连接是颇为不便的,所以我们需要的是能够直接用浏览器进行管理的图形界面,这就轮到本文要介绍的:portainer。

Portainer是一款开源的容器管理平台,它提供了一个直观易用的Web界面,帮助用户管理Docker容器集群、镜像、卷等资源。Portainer 支持多种 Docker 环境,包括本地Docker、Swarm 模式、Kubernetes 等,并支持多租户、RBAC权限管理等功能。使用 Portainer,可以方便地创建、启动、停止、删除容器,管理容器的网络、卷、环境变量等设置,查看容器日志、统计信息等。此外,Portainer 还提供了一些实用的功能,如容器模板、自定义仪表盘、事件监控、Web 终端等。

部署portainer

命令如下:

docker run --name=portainer -d --restart=always  \
-p 9000:9000 \
-v /run/docker.sock:/var/run/docker.sock:ro \
-v /docker/portainer/data:/data \
--workdir=/ --runtime=runc \
portainer/portainer-ce:latest

参数解释:
-p 9000:9000
映射宿主机的9000端口到容器的9000端口,这个大家根据实际情况调整即可。
-v /run/docker.sock:/var/run/docker.sock:ro
/run/docker.sock是Docker守护进程默认监听的Unix域套接字,该参数将宿主机的docker.sock映射进了protainer里,portainer可以通过它与宿主机的Docker守护进程进行通信,从而实现对其他容器的管理。
--workdir=/ --runtime=runc \
指定工作目录和运行时

界面简介

使用http://宿主机IP:9000登录portainer,首次登录需要创建管理员账号:

image.png

创建后进入系统,界面如下:
image.png

portainer可以管理多种环境,通过上图右边的"Add Environments"可以管理其他机器上的 docker 或者管理 swarm、k8s 集群。本次我们只是本地管理,所以点左边的"Get Started",进入local页面:
image.png

点击上图右边红框中的"Live connect",进入dashboard:
image.png

Stacks里的是我通过docker compose命令创建的容器集合:
image.png

我这里面有2个,因为我只用了2次docker compose命令,一个是长亭雷池的waf,一个是umami流量监控。
Images里是所有已经下载的镜像,Netowrks是所有已经创建的网络,这2个就不细说了,然后就是最重要的Containers界面:
image.png

和docker desktop相比,portainer最大的优势是点击进入具体的docker之后能做的事,例如我点击进入第一个bind9:
image.png

然后继续点击上图红框中的"Duplicate/Edit"之后,就可以对容器的参数进行修改,主要2个部分:
Network ports configuration,可以添加删除或者修改映射的端口:
image.png

Advanced container settings,可以直接修改环境参数:
image.png

修改完成后,点击上图红框中的按钮重新部署容器即可(其实就是删除容器以后重新以你配置的参数创建新容器)。

其实吧,你说这个功能有多大作用吧,其实也没多大作用,即便没有这个功能,手动删除容器然后用新参数重新运行一次docker run即可,但是如果当时不方便ssh进行管理,只能web的话,这个功能就有作用了。

配置公网访问

如果要发布到公网上的,大家需要根据实际环境和自己使用的反向代理选择最适合自己的发布方式,可以参考我以前的几篇文章:
1、docker系列 使用docker基于NPM搭建自己的反向代理
2、linux面板系列 配置反向代理并使用非443端口进行发布
3、家庭数据中心系列 通过国内备案云主机白嫖cloudflare实现国外快速访问国内站点
4、家庭数据中心系列 通过无公网IP的家庭宽带白嫖cloudflare实现快速建站(通用)

其中第1,2种方式适合有公网ip却没有合法443端口的环境(家庭宽带、未备案的云主机),需要在url后面加非标端口(如果使用cloudflare建站的不需要加端口,但是需要自定义源站端口,这个可以参考:家庭数据中心系列 通过cloudflare的Origin Rules解决建站有公网IP却没有合法的80、443端口的问题)。第3种方式适合有备案的云主机,第4种方式适合所有环境(包括没有公网IP的环境),也是我建议的方式(不管你的环境有没有公网IP,因为这种方式不需要直接在公网上跑https流量)。

博客内容均系原创,转载请注明出处!更多博客文章,可以移步至网站地图了解。博客的RSS地址为:https://blog.tangwudi.com/feed,欢迎订阅;如有需要,可以加入Telegram群一起讨论问题。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇
       

本站已禁用鼠标右键和各种快捷键,代码块内容可以直接在右上角点击复制按钮进行复制

zh_CN