保姆级教程:用Docker Compose在CentOS 7.6上部署Portainer CE 2.18.4(附离线包下载)

银河麒麟v10-arm版离线安装Portainer 阅读详情

从零开始:CentOS 7.6环境下Portainer CE的终极部署指南

当你第一次面对一台裸机的CentOS 7.6服务器,想要部署Docker管理工具Portainer时,是否感到无从下手?本文将带你走过从系统准备到Portainer完美运行的每一步,特别针对国内网络环境和初学者可能遇到的各类"坑"提供解决方案。

1. 环境准备与基础检查

在开始部署之前,我们需要确保系统环境满足Portainer运行的基本要求。CentOS 7.6虽然是一个稳定的平台,但默认配置可能需要一些调整。

首先检查系统内核版本,Portainer需要Linux内核3.10或更高版本:

uname -r

典型输出应该是3.10.0-1160.el7.x86_64或类似版本号。如果你的内核版本低于3.10,建议先升级系统。

接下来,确认SELinux状态:

sestatus

如果SELinux处于enforcing模式,我们有两种选择:

  1. 临时禁用(重启后失效):
    setenforce 0
    
  2. 永久禁用(需重启生效):
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
    

提示:在生产环境中,建议保持SELinux启用并配置正确的策略,而非直接禁用。但对于初学者测试环境,禁用可以避免许多权限问题。

2. Docker与Docker Compose安装

Portainer作为Docker的管理工具,自然需要先安装Docker引擎。以下是针对CentOS 7.6的完整安装步骤:

2.1 安装Docker CE

  1. 卸载旧版本(如有):

    sudo yum remove docker \
                   docker-client \
                   docker-client-latest \
                   docker-common \
                   docker-latest \
                   docker-latest-logrotate \
                   docker-logrotate \
                   docker-engine
    
  2. 安装必要工具包:

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    
  3. 添加Docker官方仓库(国内用户建议使用阿里云镜像加速):

    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
  4. 安装Docker CE:

    sudo yum install -y docker-ce docker-ce-cli containerd.io
    
  5. 启动Docker并设置开机自启:

    sudo systemctl start docker
    sudo systemctl enable docker
    
  6. 验证安装:

    sudo docker run hello-world
    

    如果看到"Hello from Docker!"消息,说明安装成功。

2.2 安装Docker Compose

虽然Portainer可以通过纯Docker命令运行,但使用Docker Compose能更好地管理服务配置。以下是安装步骤:

  1. 下载Docker Compose二进制文件(国内用户可使用代理):

    sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    
  2. 添加执行权限:

    sudo chmod +x /usr/local/bin/docker-compose
    
  3. 验证安装:

    docker-compose --version
    

    应输出类似docker-compose version 1.29.2, build xxxxxxx的信息。

3. Portainer CE部署实战

现在我们已经准备好了所有前置条件,可以开始部署Portainer CE了。我们将采用Docker Compose方式部署,这是目前最推荐的方法。

3.1 准备持久化存储

Portainer需要持久化存储其配置数据,我们先创建必要的目录结构:

sudo mkdir -p /opt/portainer/data
sudo chmod -R 775 /opt/portainer

注意:在生产环境中,你应该为这些目录设置更严格的权限,并考虑使用专门的存储卷。

3.2 编写Docker Compose文件

创建一个docker-compose.yml文件:

vim /opt/portainer/docker-compose.yml

文件内容如下(根据你的架构选择相应配置):

x86_64架构:

version: '3'
services:
  portainer:
    image: portainer/portainer-ce:2.18.4
    container_name: portainer
    restart: always
    ports:
      - "9026:9000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /opt/portainer/data:/data

ARM64架构:

version: '3'
services:
  portainer:
    image: portainer/portainer-ce:2.18.4-linux-arm64
    container_name: portainer
    restart: always
    ports:
      - "9026:9000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /opt/portainer/data:/data

3.3 启动Portainer服务

在包含docker-compose.yml文件的目录下执行:

docker-compose up -d

这将下载Portainer镜像(如果尚未存在)并启动服务。你可以通过以下命令检查服务状态:

docker ps

应该能看到portainer容器正在运行。

4. 防火墙配置与初次访问

4.1 配置防火墙

CentOS 7默认使用firewalld,我们需要开放Portainer使用的端口(默认为9026):

sudo firewall-cmd --permanent --add-port=9026/tcp
sudo firewall-cmd --reload

验证端口是否开放:

sudo firewall-cmd --list-ports

4.2 初次访问Portainer

现在你可以通过浏览器访问Portainer了:

http://你的服务器IP:9026

首次访问时,系统会提示你创建管理员账户。填写所需信息后,点击"Create user"。

常见问题:如果页面显示"Unable to retrieve server settings"或长时间加载,可能是SELinux或防火墙问题。尝试临时禁用它们进行排查。

5. 离线环境部署方案

对于无法连接Docker Hub的环境,我们可以使用离线安装包。以下是详细步骤:

5.1 准备离线资源

首先,在有网络的环境中下载所需资源:

  1. Portainer CE镜像(根据架构选择):

    • x86_64: docker pull portainer/portainer-ce:2.18.4
    • ARM64: docker pull portainer/portainer-ce:2.18.4-linux-arm64
  2. 保存镜像为文件:

    docker save -o portainer-ce-2.18.4.tar portainer/portainer-ce:2.18.4
    
  3. 将以下文件打包:

    • 保存的镜像文件
    • docker-compose.yml文件
    • 任何自定义配置文件

5.2 离线环境部署

将打包文件传输到目标服务器后:

  1. 加载Docker镜像:

    docker load -i portainer-ce-2.18.4.tar
    
  2. 创建必要的目录结构:

    mkdir -p /opt/portainer/data
    
  3. 放置docker-compose.yml文件到/opt/portainer/

  4. 启动服务:

    docker-compose up -d
    

6. 高级配置与优化

6.1 使用Nginx反向代理

在生产环境中,建议通过Nginx等反向代理访问Portainer,而不是直接暴露端口。以下是基本配置示例:

server {
    listen 80;
    server_name portainer.yourdomain.com;

    location / {
        proxy_pass http://localhost:9026;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

6.2 配置HTTPS

安全起见,应该为Portainer启用HTTPS。你可以使用Let's Encrypt免费证书:

  1. 安装certbot:

    sudo yum install -y epel-release
    sudo yum install -y certbot python2-certbot-nginx
    
  2. 获取证书:

    sudo certbot --nginx -d portainer.yourdomain.com
    
  3. 证书会自动配置到Nginx,并设置自动续期。

6.3 备份与恢复

Portainer的所有配置都存储在/opt/portainer/data目录中。要备份:

tar -czvf portainer-backup-$(date +%Y%m%d).tar.gz /opt/portainer/data

要恢复,只需解压备份文件到原位置:

tar -xzvf portainer-backup-20230601.tar.gz -C /

7. 日常管理与故障排除

7.1 常用管理命令

  • 查看Portainer日志:

    docker logs -f portainer
    
  • 重启Portainer服务:

    docker-compose restart
    
  • 更新Portainer版本:

    1. 停止并删除旧容器:
      docker-compose down
      
    2. 拉取新镜像:
      docker-compose pull
      
    3. 重新启动:
      docker-compose up -d
      

7.2 常见问题解决

问题1:无法通过9000端口访问Portainer

  • 检查防火墙设置
  • 确认Docker Compose文件中端口映射正确
  • 检查Portainer容器是否正常运行

问题2:登录后显示空白页面

  • 清除浏览器缓存
  • 检查浏览器控制台是否有错误
  • 尝试使用隐私模式访问

问题3:无法连接Docker守护进程

  • 确认/var/run/docker.sock已正确挂载
  • 检查Docker服务是否运行
  • 尝试重启Docker服务

在实际使用中,我发现最常遇到的问题都与权限相关。特别是在CentOS上,SELinux和文件系统权限经常会导致各种"奇怪"的问题。一个实用的技巧是在遇到问题时,先尝试用docker logs查看Portainer的日志输出,这通常能快速定位问题根源。

Debian 10 手动安装 Docker Compose 完整指南 Docker Compose 是基于 YAML 声明式编排多容器应用的核心工具,其原理是将服务定义、网络配置与卷挂载等抽象为可版本化、可复现的文本描述,再由运行时解析并调用 Docker API 实现自动化部署。该技术显著提升开发与运维效率,广泛应用于家庭媒体中心(如 Jellyfin)、轻量级私有云(如 Nextcloud)及遗留系统容器化迁移等场景。在 Debian 10 这类以稳定著称的发行版中,因官方源主动移除 python 版 docker-compose 包,且 pip 安装易引发 Python 阅读详情

相关推荐

Docker Toolbox 19.03.1 在 Windows Server 2012 R2 的替代方案:3种架构对比与选型

本文全面分析了Windows Server 2012 R2容器化转型的三种替代方案,包括传统Docker Toolbox架构、原生Linux VM+Docker CE以及系统升级路径。针对不同企业需求,提供了详细的技术实现、性能优化和决策建议,帮助用户在虚拟化和容器化技术中做出最优选择。

z466459262的专栏 385

docker 安装 portainer

docker portainer

myydan的专栏 952

Docker容器回顾之运维篇

背景 接上一篇《Docker复习之部署篇》,本文继续对Docker之日常维护常用操作做回顾总结。 操作命令 2.1 Docker 容器查看 首先,管理员对docker做日常维护,需要了解现有环境有多少docker实例,并连接进入docker实例虚拟机进行对应的管理维护; 我们执行 docker ps 命令来查看容器名称:docker ps -a或docker ps //显示当前正在运行的容器,输出如下: 参数概览: 示例: 1)显示最后被创建的容器:docker ps -l //相当于 dock

企业实战系列集 ●●● https://ximenjianxue.blog.youkuaiyun.com 2884

全网最强Docker教程 | 万字长文爆肝Docker教程

Docker是一种容器化技术,提供完整的容器解决方案,能够实现环境一致性、进程隔离和高效部署。相比传统虚拟机,Docker更轻量、启动更快且资源占用更少。其核心架构包括镜像(只读应用环境)、容器(运行中的镜像)、仓库(存放镜像的位置)和DockerFile(自定义镜像配置文件)。Docker的安装可通过官方脚本或手动配置完成,适用于Linux系统,能显著提升开发和运维效率。

qq_45832461的博客 1528

使用 Docker Compose 安装 Docker可视化管理工具 portainer(含x86和arm64平台离线安装包及其使用教程)

本文章将详细介绍如何使用 使用 Docker Compose 安装 Docker可视化管理工具 portainer。Linux操作系统下Docker和Docker Compose的安装教程(包含x86和arm64平台离线一键安装资源包)版本如下名称版本Harbor2.8.2CentOS7.6+Docker20.10.221.23.1。

ChennyWJS的博客 2510

portainer-ce 2.21

Portainer 是一个轻量级的管理 UI ,可让你轻松管理不同的 Docker 环境,简化了容器管理的复杂性,使得用户无需使用命令行即可部署、管理和监控容器‌,Portainer的主要功能包括: ‌容器管理‌:用户可以查看和管理Docker容器的状态,包括启动、停止、重启容器等操作。 ‌镜像管理‌:支持上传、下载、删除Docker镜像,并可以查看镜像的详细信息。 ‌网络和数据卷管理‌:管理和配置Docker网络和数据卷。 本镜像版本是portainer-ce:2.21.5 1、下载资源后,先加载镜像 docker load -i portainer-ce2-21.tar 2、通过命令启动容器 docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:2.21.5 3、浏览器访问ip:9443端口

双栈工坊:用Docker Compose与Portainer打造统一容器管理部署方案

容器化技术通过镜像与容器机制,解决了软件交付中环境不一致的难题,成为现代运维和开发协作的基石。Docker将应用及其依赖打包为标准化单元,而Docker Compose则通过声明式配置实现多服务编排,让整套环境可复现、可迁移。在实际工程中,借助Portainer这类可视化面板,运维人员可以统一查看容器状态、日志和资源占用,大幅降低多服务管理成本。无论是部署MySQL、Redis等基础组件,还是承载本地大模型推理、自动化脚本等应用服务,一套规范化、分层化的“双栈工坊”式管理方案都能让环境搭建与日常维护变得高效

weixin_34122604的博客 393

portainer-ce中文版镜像

现有docker网络拉取portainer-ce中文镜像不方便,因此留存一份,供有需要的小伙伴下载使用,只需要用docker load一下就ok了

一键安装Docker服务,Docker解决方案,Docker镜像源修改,CentOS7、CentOS8、Ubuntu、CentOS9、Anolis OS23安装Docker

CentOS7安装Docker修改Docker镜像源 docker设置容器自动启动 docker compose设置容器自启动 docker file修改时区 docker在容器执行命令 docker compose命令 安装docker compose Docker WEB 图形化 Jenkins 无法执行 docker 命令 docker 查看某个时间段的日志 Docker运行命令对宿主机进行打包

雪花凌落的盛夏 694

docker_portainer.tar

Portainer 1.13.3,启动命令:docker run -d --privileged=true --name docker_admin -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /opt/data/portainer:/data hub.c.163.com/fgstudent/portainer:latest

C++控制台实现简单的注册登录

C++控制台实现简单的注册登录 #include<iostream> #include<string> #include <vector> #include <conio.h> void Display();//调用display显示switch()界面 void Register();//注册 void Enter();//登录 using nam...

乔路非 2万+

docker学习文档

docker学习文档

qq_42449963的博客 3787

飞腾D2000开发板实战:手把手教你为UEFI/EDK2驱动SD3077 RTC时钟芯片

本文详细介绍了在飞腾D2000开发板上为UEFI/EDK2环境驱动SD3077 RTC时钟芯片的全流程开发指南。从硬件连接到软件适配,包括引脚复用配置、电源管理优化以及UEFI驱动的深度定制,帮助开发者解决嵌入式系统中的时间同步问题,确保RTC芯片的稳定性和准确性。

weixin_30892037的博客 423

Docker 学习:术语、使用、Compose、Swarm

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

freeking101的博客 6169

白炽灯寿命工程解析:从钨丝蒸发到电压控制的可靠性设计

白炽灯作为一种经典的电光源,其工作原理基于电流通过钨丝产生热辐射发光。在高温下,钨丝会持续蒸发导致灯丝逐渐变细、电阻增大,这是影响其寿命的核心物理机制。从工程角度看,白炽灯的可靠性设计涉及材料科学、热力学和电路设计的交叉,技术价值在于通过理解其失效原理,可以在成本与性能间取得最佳平衡。在实际应用中,电压波动、开关浪涌电流和机械振动是主要寿命杀手,尤其在工业控制、仪器仪表和特定照明场景中,合理的设计能大幅提升系统稳定性。本文深入探讨了钨蒸发、热应力等关键因素,并结合浪涌抑制和降压设计等实战技巧,为工程师提供了

weixin_28684655的博客 571

在STM32F103RBT6微控制器上利用USB虚拟Com端口技术,高效实现ADC数据传输:详细操作步骤与示例代码解析

以上就是在STM32F103RBT6上使用USB虚拟Com端口实现ADC数据传输的全部内容。虽然过程中有很多步骤和细节需要注意,但只要按照步骤来,理解每一段代码的作用,就完全可以掌握这个过程。在实际应用中,我们可能需要根据实际需要修改一些代码,如调整ADC的参数,改变数据的处理方式等。但是,只要理解了这个过程,我们就可以很灵活地进行修改。希望这篇文章对你有所帮助。如果你有任何疑问,欢迎在评论区留言,我会尽我所能进行解答。

qq_38334677的博客 1168

《ChatGPT 微服务应用体系构建》实战:本地与云服务器 Docker 环境安装与配置全指南

Docker 是《ChatGPT 微服务应用体系构建》课程中所有应用部署的统一运行底座,本篇文章围绕该课程 dev-ops 第 2 节的 Docker 环境配置,完整讲解本地 Docker Desktop 的安装、云服务器手动安装、一键脚本安装、国内镜像源配置,以及 Portainer、Nginx、服务镜像构建等后续部署环节的衔接方式。读完本文,你将能够在本地和云服务器上独立完成 Docker 环

gitblog_00112的博客 231

如何使用CPU-Z获取内存条频率信息(编程)

当我们需要获取计算机内存条的频率信息时,可以利用CPU-Z这个工具来实现。CPU-Z是一款专门用于获取计算机硬件信息的工具,它提供了API接口,我们可以通过编程的方式来获取内存条频率信息。你可以从CPU-Z官方网站下载适用于你的操作系统的CPU-Z程序,并从安装目录中找到。函数,我们可以初始化CPU-Z,如果返回值不为0,则表示初始化失败。函数来获取内存条频率信息,如果返回值小于等于0,则表示获取失败。函数来初始化CPU-Z并获取内存条频率信息。最后,我们将获取到的内存条频率信息打印输出,并使用。

ByteProwl的博客 460

Docker 高级技术:中间件部署与分布式云原生实践指南(二)

本文介绍了关于安装部署各类中间件以及docker compose,network,volume等高级特性

欢迎来到烟火气知识小天地!这里记录生活、工作中的 “小麻烦”,从软件故障到生活难题,我会毫无保留分享解决思路与方法,愿成为你排忧解难时的温暖参考,伴你在解决问题路上稳步前行。 4390

Android NDK/JNI面试题大全及参考答案(3万字长文)

是一套工具集合,它允许开发者为Android平台编写原生应用程序或者应用程序的部分模块。NDK 主要用于开发那些需要高性能计算的应用程序,例如游戏引擎、图像处理软件或音频/视频编码解码器等。通过使用 C 或 C++ 编写代码,开发者可以利用硬件加速功能,提高应用性能。NDK 提供了一系列工具来帮助开发者完成从源代码到可执行文件的整个过程,包括编译、链接、调试等功能。

大模型大数据攻城狮的专栏 1259

手把手教你完成基于cnn的手写数字识别系统MATLAB语言

手写数字识别是经典的 CNN 分类应用之一,常用的数据集就是 MNIST 手写数字数据集,包含 0~9 这 10 个数字的手写图片,每个数字都由 6 万幅训练图像和 1 万幅测试图像构成。为了便于直观分析,这里选择 MATLAB 工具箱提供的 DigitDataset 进行训练识别,读者也可以直接利用 MNIST 数据集或者自己设计的数据集进行实验。其中,数据集文件夹 db 如图 所示。在数据集文件夹 db 里面对每个数字都建立了子文件夹,各自包含 1000 幅 28×28 大小的二维灰度图像。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1369

docker学习

docke学习

weixin_44137201的博客 1720

YOLOv11改进策略【模型轻量化】| 替换骨干网络为 GhostNet V1 基于 Ghost Module 和 Ghost Bottlenecks的轻量化网络结构

本文记录的是基于的YOLOv11网络模型轻量化方法研究。GhostNet中的Ghost模块和Ghost瓶颈结构是其轻量化的关键。Ghost模块克服了传统卷积层计算资源需求大的问题,Ghost瓶颈则合理设计了通道数量的变化以及与捷径连接的方式,能更好地在减少计算成本的同时保持较高性能,从而提升模型在移动设备上的应用能力和效率。

Limiiiing的博客 1431

Jenkins 自动化部署 Spring Boot 集群项目(含 Nginx 负载均衡)

去这里下载.msi文件,然后安装再配置java的环境变量即可。

weixin_41359273的博客 440

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Docker容器化部署宝塔面板:实现服务器环境隔离与快速复制

容器化技术通过将应用及其依赖打包成轻量级、可移植的容器,实现了环境一致性、资源高效利用和快速部署等核心优势。其原理基于操作系统级别的虚拟化,共享宿主机内核但提供独立的文件系统与进程空间,在提升部署效率的同时降低了运维复杂度。这一技术为现代应用部署带来了显著的工程价值,尤其在微服务架构、持续集成和开发测试环境标准化等场景中广泛应用。结合宝塔面板这一流行的服务器运维管理工具,用户可以在Docker容器中部署和管理Web服务,实现环境隔离、一键部署和便捷迁移,有效解决了传统部署方式中的环境依赖冲突和系统污染问题。

weixin_30718391的博客 411

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: 别再只开空间音效了!Win11/10 音频设置进阶:Sonic、杜比全景声与耳机/声卡的搭配优化指南
下一篇: Chromium系浏览器Linux硬解指南:从VA-API原理到NVIDIA/Intel实战避坑
少年梁大锤
博客等级 码龄6年 29粉丝 1448原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值