首页 > 其他分享 >Docker可视化管理工具Portainer

Docker可视化管理工具Portainer

时间:2025-01-21 20:28:00浏览次数:3  
标签:容器 tomcat portainer 管理工具 Portainer 镜像 docker Docker

Portainer简介

Portainer 是一个轻量级的、开源的容器管理工具,提供了一个直观的 Web 用户界面(UI),用于管理 Docker 和 Kubernetes 环境。它简化了容器的部署、监控和管理,特别适合不熟悉命令行操作的用户或团队。

Portainer架构概述

Portainer 由两个元素组成:Portainer 服务器和 Portainer 代理。两者均作为轻量级容器在现有的容器化基础架构上运行。Portainer 代理应部署到集群中的每个节点,并配置为向 Portainer 服务器容器报告。

单个 Portainer 服务器将接受来自任意数量的 Portainer 代理的连接,从而能够从一个集中式界面管理多个集群。为此,Portainer 服务器容器需要数据持久性。Portainer 代理是无状态的,数据会被发送回 Portainer 服务器容器。

其它请参见官方文档:Welcome | Portainer Documentation

Portainer安装

环境依赖

由于本地已具备Docker服务运行环境,因此基于docker环境安装Portaniner镜像服务,并运行容器,相关Docker安装过程此处省略,可参见《Docker基础安装与使用》

拉取镜像文件

拉取Docker中央仓库最新版本镜像;

docker pull portainer/portainer-ce:latest

注意:portainer-ce为开源社区版,同时官方还有商业版portainer-be,拉取时需要区分;

执行日志

[root@centos72 docker]# docker pull portainer/portainer-ce:latest
latest: Pulling from portainer/portainer-ce
dc8df0f2921e: Pull complete 
c82aa9c9fb45: Pull complete 
d40df14c1d7a: Pull complete 
a3939f2dc487: Pull complete 
204b2fbb824e: Pull complete 
a53c840f28bf: Pull complete 
9e1dadc4be73: Pull complete 
6f01ec19fa2b: Pull complete 
e2f767fe3885: Pull complete 
793e77bf062e: Pull complete 
4f4fb700ef54: Pull complete 
Digest: sha256:bd12f7a8732kx8e2a512e18272c3lwifjsf5sdf2d663451894axv557a3b9uiw6
Status: Downloaded newer image for portainer/portainer-ce:latest
docker.io/portainer/portainer-ce:latest

令查看images镜像列表是否已存在,以及查看版本与大小;

docker images

创建Docker服务

下载镜像后,可以直接通过docker run创建并默认运行portainer服务容器;

docker run -d --name=portainer -p 9000:9000 portainer/portainer-ce:latest

但默认安装存在弊端,并没有对portainer的docker容器环境做硬件资源分配限制,因此可能会占用过多以及与其它应用程序竞争;

如果已安装启动portainer容器,先停止portainer的docker容器,通过外部命令行运行容器,限制容器内存、CPU资源数

相关命令参数可通过:docker run --help 查看或查看官方文档:Resource constraints | Docker Docs

# 创建并启动指定docker容器,后缀b、k、 m、g表示内存容量单位
docker run -d --name=portainer \
  -c 2 -m 512m --memory-swap=1G \
  -p 9090:9000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /opt/docker/sysdata/portainer_data:/data \
  -e APP_ENV="production" \
  --restart unless-stopped \
  portainer/portainer-ce:latest

参数解说:

run:表示从镜像中创建一个新的docker容器并启动运行;

-d:表示容器在后台启动

--name:表示为docker容器设置一个名称

-m或--memory:表示容器可使用最大内存;

--memory-swap:表示容器可缓存到磁盘上的交换内存使用量和-m内存可使用量的总和,设置为0则忽略,-1则无限制,如果与-m数量一致,则无法使用磁盘缓存内存空间;

-c或--cpus:表示容器可使用的CPU资源量,通常按核心数量算,也支持,0.5,1.5~等使用量计算;

-p:表示宿主机与docker容器的端口映射,多个端口可以用多个-p来实现;

-v:表示宿主机与docker容器的文件目录映射,多个目录映射可用多个-v来实现;注意:需要是有效的宿主机卷目录;

-e:表示在docker容器中添加环境变量

--restart:表示docker容器的重启策略为:no:默认不自动重启;always:总是重启容器;on-failure:仅在容器退出状态码非 0 时重启;unless-stopped:总是重启,除非容器被手动停止;

portainer/portainer-ce:latest:表示服务镜像名称,可通过docker images查看

当控制台没有输出错误,并返回显示正常的dockerId串后,表示启动成功,

访问docker服务器的9000端口(注意事向:因我的环境上9000端口已被占用实际用的9090,因此创建docker容器时,用的-p 9090:9000参数

管理与使用

浏览器输入:http://ip:9000,即可进入Portainer初始化界面,它会要求我们配置用户名密码:

完成账户密码初始化之后,默认无任何管理服务;

Docker主机管理

可点击Home页上Infomation提示中的的"environment wizard“进行服务器本地容器管理,或从左侧菜单Environments》Add environment进入添加;

跳到QuickSetup页,选择第一项,Docker Standalone,因为本地测试的docker容器为单机独立部署;点击Start Wizard进入下一步;

选择通过在Docker服务器上安装Agent程序来支持远程管理;

选中Agent块,点击"Copy command"按钮,复掉脚本到远程Docker服务所在主机上执行,自动下载并安装Agent代理;

注意:此处是指需要在安装Docker引擎服务的主机上运行此Agent代理脚本;

docker run -d \
  -p 9001:9001 \
  --name portainer_agent \
  --restart=always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /var/lib/docker/volumes:/var/lib/docker/volumes \
  portainer/agent:2.16.2

复制脚本在远程docker服务器上安装Portainer Agent程序;

待执行完毕,点击Connect按钮链接即可在右上角看到连接配置;

回到主页面,可以查看已成功连接的远程docker服务。

安装镜像演示

通过安装Tomcat来演示,在Portainer上如何操作,点击Images,进入镜像Pull页面;输入tomcat,点击Search跳入到官方平台,查找是否存在或支持的版本;

点击搜索列表中的tomcat,进入tomcat版本镜像明细页面,切换到Tags选项卡内容中,因为在Overview中主要是提供基于Dockerfile安装的版本;

点击Tags标签,官方已打包好多个可用的Tags镜像版本;

选择一个最新的版本,用来安装镜像与测试;Copy: docker pull tomcat:9.0.98-jdk8-corretto-al2,复制tomcat:9.0.98-jdk8-corretto-al2内容到Portainer中docker.io框,点击”Pull the image“拉取;

因拉取中央仓库镜像,拉取速度受网络环境影响比较大,等待一会儿,待拉取完毕后,在Images中显示;

在Containers页中,通过 Add container 添加创建容器;Name任意命名,Image为并填项,输入已拉取的tomcat镜像版本:tomcat:9.0.98-jdk8-corretto-al2,因为我们已拉取tomcat镜像到docker服务器下,因此将”Always pull the image“关闭,默认会查找本地已有的镜像对应版本;

点击publish a new network prot 添加docker容器环境与 docker服务器主机环境(宿主机)关联的端口映射,(宿主机)host:8080,(容器) container:8080,当通过浏览器访问宿主机物理端口8080时,奖映射到docker容器系统下的8080端口;

点击Deploy the container 部署应用后,回到Containers列表,docker容器tomcat服务已成功运行;

在Docker服务主机上检索8080端口,显示已启用;

通过浏览器访问,显示404,但这页面风格明显这是tomcat服务返回的;

通过外部命令行,进入容器内查看,发现在/usr/local/tomcat/webapps下没有任何应用运行,因此返回404;

如果开发使用,只需将/usr/local/tomcat/webapps映射到宿主机目录下,将web打包后的文件置放在该宿主机绑定的映射目录下,tomcat服务重启后,即能发现应WEB用并加载运行WEB应用服务;

docker exec -it tomcat-9.0.98 /bin/bash

执行日志

为了演示一个完整的tomcat部署服务过程,重新建一个tomcat镜像服务,命名为:tomcat-9.0.98-2 ,docker镜象为:tomcat:9.0.98-jdk8-corretto-al2,此镜像为我们已拉取imags中的tomcat镜像为系统运行环境基础;

在Volumes卷中,为docker容器中tomcat的webapps和logs虚拟目录添加docker服务主机上(宿主机)映射目录,用于在服务主机上上传服务和查看tomcat的运行日志;

创建成功后,在Contaners 列表运行tomcat-9.0.9-2服务;

在docker服务主机上,进入为docker容器tomcat服务映射的宿主机logs目录上,此时已在docker服务主机上生成tomcat运行日志;

向docker服务主机上映射的docker容器tomcat服务webapps目录上传可运行的WEB应用程序,此ROOT为从另一个tomcat9.tgz解压版webapps上复制上传而来,为tomcat的运行后的默认首页;

上传ROOT应用程序相关文件后,重启tomcat服务,因为在tomcat服务启动状态下上传web应用,会导致web应用加载不完整或加载出错;

包含tomcat服务的docker容器重启完毕后,再一次访问docker服务器映射的容器端口:8080,此时tomcat服务的默认大猫猫显示出来了;

再一次进入到docker容器里,查看容器里的/usr/local/tomcat/webapps目录下已经能看到上传的ROOT应用目录;

docker exec -it tomcat-9.0.98-2 /bin/bash

执行日志

到此以一个完整的流程,演示安装Portainer,使用Portainer来管理远程docker服务,以及拉取docker镜像,部署docker容器服务;

结束

在Portainer中还有很多细分的功能,因篇幅问题以及个人熟悉程度,未在本章中展示,期待大家自行摸索与测试;

注:在安装和使用过程中,如遇到问题,可以向国产AI大模型Deepseek V3版本提问,能够获得有效的方案和回答。Deepseek响应快,答案清晰、精准,值的使用;

标签:容器,tomcat,portainer,管理工具,Portainer,镜像,docker,Docker
From: https://blog.csdn.net/jilo88/article/details/145289637

相关文章

  • [docker] 部署 Seata 分布式事务
    docker部署Seata分布式事务在使用Docker部署Seata并与Nacos配置中心结合时,你可以通过以下步骤来实现。Seata是一个开源的分布式事务解决方案,而Nacos是阿里巴巴开源的一个动态服务发现、配置和服务管理平台。一、环境准备部署好mysql服务部署好nacos服务二......
  • 2025年带你探索Trello、JIRA替代品:8款顶级项目管理工具全面解析!
    在项目管理的广阔领域中,Trello和JIRA一直是备受瞩目的工具,但随着市场的不断发展,还有许多优秀的替代品值得我们去探索。本文将为你详细解析8款顶级项目管理工具,它们分别是禅道、Trello、Asana、MicrosoftProject、Wrike、Monday.com、Basecamp、Teambition。这些工具各有千秋,涵盖......
  • 【docker】如何运行没有Root权限的Docker?
    以下文章来源于运维自习室,作者运维自习室Rootless模式的目的是让Docker守护进程以非root用户身份运行。该方案以实验特性的方式在v19.03版本引入,并在v20.10版本成为正式功能。实践官方文档已经做了详细的介绍,这里仅仅做一下实践复现。具体实践环境为:CentOS7.2docker-ce23......
  • Ubuntu22.04上Docker的安装
    在Ubuntu22.04上安装Docker可以帮助您快速构建、测试和部署应用程序。Docker是一个开源的容器化平台,它使开发人员能够将应用程序及其依赖项打包到一个标准化的单元中。本文将详细介绍如何在Ubuntu22.04上安装和配置Docker。一、更新系统首先,确保您的系统软件包是最新的。这有......
  • [docker] 部署 nacos-server
    拉取nacosserver镜像dockerpullnacos/nacos-server:v2.4.3如果失败(网络问题),可以使用国内的镜像:dockerpullnacos-registry.cn-hangzhou.cr.aliyuncs.com/nacos/nacos-server:v2.4.3#其它版本nacos-registry.cn-hangzhou.cr.aliyuncs.com/nacos/nacos-server:v2.3......
  • 如何通过跨境电商流程管理工具提升项目效率?几个工具推荐
    在竞争激烈的跨境电商领域,合适的工具就如同得力的助手,能够显著提升运营效率、优化业务流程,助力企业在全球市场中脱颖而出。从市场调研、选品采购,到店铺运营、营销推广以及物流管理等各个环节,都有相应的专业工具可供选择。接下来,我们将深入探讨一系列跨境电商实用工具。一、跨境......
  • 太香了!一款轻量级的 Elasticsearch 可视化管理工具!
    大家好,我是Java陈序员。今天,给大家介绍一款轻量级的Elasticsearch可视化管理工具,可替代Kibana!关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。项目介绍Elasticvue——一个免费且开源的Elasticsearch在线可视化客户端,用于......
  • docker在网桥模式下主机端口映射到容器端口的原理
    前置知识iptables:捕获并控制容器和主机之间的流量,可以通过iptables-tnat-nL命令查看iptables的(S/D)NAT规则docker0:虚拟交换机veth1b62ff4@if56:虚拟交换机的虚拟接口上下两个虚拟接口成对出现eth0@if57:容器的虚拟接口网络环境CentOS:ens33->192.168.40.180/24、docker......
  • docker-compose部署clickhouse
    创建目录mkdir-p/usr/local/docker/clickhouse/conf/usr/local/docker/clickhouse/data/usr/lcoal/docker/clickhouse/log启动临时容器获取配置文件dockerrun--rm-d--name=temp-clickhouse-serverclickhouse/clickhouse-server:latest复制配置文件到宿主机doc......
  • 推荐一款非常好用的在线 SSH 管理工具
    前言SSH工具在远程连接、文件传输、远程管理和增强安全性等方面发挥着重要作用,是我们开发人员和系统管理员不可或缺的工具。今天大姚给大家推荐一款非常好用的在线SSH管理工具:Xterminal。工具介绍Xterminal一个好用的在线SSH、SFTP工具,支持跨平台(Windows、Linux、MacOS)运行,......