Portainer

简介

Portainer 是一个轻量级的容器管理平台,主要用于简化 Docker 环境的部署和管理。用户可以通过图形界面直观地管理容器、镜像、卷和网络等 Docker 资源,支持 Docker 引擎和 Swarm 模式。Portainer 的主要作用包括容器管理、镜像管理、团队与权限管理,以及提供 API 接口实现自动化部署和监控,使 Docker 资源管理更加高效和便捷。

Portainer 主要功能:

优势

  1. 提供状态显示面板:显示主机或者 swarm 集群上有多少镜像,容器、网络、数据卷等;
  2. 应用模板快速部署:可以使用预存的模板或者自己定制的模板快速部署;
  3. 镜像网络数据卷管理:通过页面进行管理和操作,例如构建镜像,增删数据卷等;
  4. 事件日志显示:对任何操作有记录,并且有页面可以显示审计日志;
  5. 容器控制台操作:查看容器,启停容器,查看容器占用的性能(内存,cpu 等)
  6. Swarm 集群管理:可以管理 swarm 集群,是最大的优点;
  7. 登录用户管理:有完备的用户系统,权限控制(高级功能需付费);

不足

  1. Portainer 没有自带的高可用,但是可以利用 nfs 等方式作高可用(其实这种管理平台也不是必定需要高可用)
  2. Portainer 没有中文页面,官方没有提供中文翻译,网上大神自己翻译的中文汉化包但是只能支持特定版本
    [Pasted image 20240801161548.png]

安装准备

官网:Kubernetes and Docker Container Management Software (portainer.io)

[Pasted image 20240801160930.png]
[Pasted image 20240801160440.png]
选择安装社区版
[Pasted image 20240801160926.png]
[Pasted image 20240801160652.png]
进入后界面左侧菜单栏选择独立版
[Pasted image 20240801160907.png]
[Pasted image 20240801160829.png]

设置卷

docker volume create portainer_data

[Pasted image 20240801161006.png]
[Pasted image 20240801161043.png]
[Pasted image 20240801161114.png]

搜索 portainer 镜像

docker search portainer

拉取 portainer 镜像

docker pull portainer/portainer-ce

启动 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-ce

mkdir -p /mydata/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 /mydata/portainer_data:/data portainer/portainer-ce

部署命令说明

  • docker run: 创建一个容器
  • -d:后台运行容器,并返回容器 ID;
  • -p 9000:9000:指定端口映射,格式为:主机(宿主)端口:容器端口
  • -v /var/run/docker.sock:/var/run/docker.sock: 绑定一个文件或目录到容器,格式为:主机(宿主)文件:容器文件
  • -v portainer_data:/data:数据持久化
    部署过程
docker volume create portainer_data

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-ce

Unable to find image 'portainer/portainer-ce:latest' locally
latest: Pulling from portainer/portainer-ce
b890dbc4eb27: Pull complete 
81378af8dad0: Pull complete 
Digest: sha256:21713e42233ee953b4cd4e6e8b1e4b6c43ebe2ca1c2dc762824a1866fdb91d3e
Status: Downloaded newer image for portainer/portainer-ce:latest
d0e69ccfc4896eba8fa8367b091eaa9f7caf77958444c4d04994ad235991c13b

查看日志

docker logs -f portainer

Docker Compose 部署方式

#用于部署运行所依赖的服务
version: '3.9'
services:
	# 基础环境组件  
	# 1.Portainer
	portainer:
		image: portainer/portainer-ce
		container_name: portainer
		command: -H unix:///var/run/docker.sock
		restart: always
		deploy:
			resources:
				limits:
					cpus: '0.50'
					memory: 800M 
				reservations:
					cpus: '0.1'
					memory: 256M
		ports:
			- "9999:9000"
			- "8000:8000"
		volumes:
			- /var/run/docker.sock:/var/run/docker.sock #数据文件挂载
			- portainer_data:/data portainer/portainer-ce #配置文件挂载
			- /etc/localtime:/etc/localtime:ro
			- /etc/timezone/timezone:/etc/timezone:ro
# 存储卷
volumes:
  portainer_data:

启动完成后,访问 \http://ip:9000

注:如果你是云服务器,确保宿主机的防火墙或云服务提供商的安全组设置允许从客户端 IP 地址访问宿主机的 9000 端口
首次登录,需要创建管理员 admin 的密码admin,设置后登录
[Pasted image 20240801162115.png]
添加 Local Docker 主机
[Pasted image 20240801162144.png]
默认选择 Docker 选择的是本地 Docker 主机

进入主页后,选择 Endpoints-- Add endpoint-- Docker
[Pasted image 20240801162206.png]

Portainer 连接其他 docker 的宿主机也比较简单,不过需要配置下 docker,将 docker 的 tcp 连接方式打开。命令如下

vim /usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd-current \          
-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \


systemctl daemon-reload
systemctl restart docker

这样即可连接到指定的 docker,下面有个 TLS 的开关,如果有强烈的安全意识可以开启这个,不过 docker 的 TLS 的打开相对复杂

主界面功能介绍

[Pasted image 20240801162254.png]
显示当前主机硬件资源和容器运行情况,当前 多少个堆栈数(Stacks),运行了 多少个容器(Containers)多少个存活 0 个停止、总共有 多少个镜像(Images) 、多少 个挂载卷和多少个网络设置。
右侧菜单分别为:

  • App Templates:App 的模板,内置 40 多个常用的服务模板,可以去更新这些,也可以删除。点击新建可以创建适合自己环境的模板,方便快速部署自己的服务。
  • Stacks:这里是制作自己的 docker compose 里的文件,可以创建自己的 docker compose 快速部署
  • Containers:管理的主机或者及集群的所有容器,点击需要管理的容器可以查看容器详细信息。进入详情也厚有对应的运维操作:Logs(查看日志),inspect(相当于 docker inspect,查看容器详细信息),Stats(查看容器占据的性能信息,包括占用的内存 CPU 等信息),Console(进入 docker 容器,相当于 exec),Attach(docker attach,不建议使用,也不好用)
  • Images:镜像操作,可以通过页面进行 pull 操作,可以查看机器上的所有镜像的详细信息,可进行大部分镜像操作(删除,build,import 导入)
  • Network:展现的是机器或者集群上 network 信息,在多机器 docker 维护中,经常需要创建维护 docker network。
  • Volume:Volume 就是机器上的数据卷信息,提供创建删除查看的操作。
  • Events:事件
  • Host:主机
    参考链接:
    https://documentation.portainer.io/v2.0/deploy/linux/

踩坑:

Portainer 无法访问

如果你捣鼓了半天环境,还是无法访问,且执行运行命令时出现以下错误:
[Pasted image 20240801161431.png]
别急,这是因为已经有一个同名的容器正在运行,可能是启动错了,有时会启动成 portainer-ce,而不是 portainer
先移除现有的 Portainer 容器(如果不再需要它):

docker rm -f portainer

执行这个命令后,将强制移除名为“portainer”的容器
再执行运行命令:

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

就可以正常访问了,首次登录,需要创建管理员 admin 的密码,设置后登录
[Pasted image 20240801161530.png]

posted @   Thousand_Mesh  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示