作者:IvanCodes
日期:2025年8月2日
专栏:Docker教程

一、Portainer 安装与基础使用教程

Portainer 是一个轻量级、功能强大Docker图形化管理界面 (GUI)。它能让你通过简单的Web界面管理和监控你的Docker容器、镜像、卷、网络等资源,极大降低了Docker的命令行操作门槛

1.Portainer 安装部署

前提条件:
你的服务器 (例如 hadoop01) 必须已经安装正在运行 Docker 服务。

步骤 1:在主机上创建用于持久化 Portainer 数据的目录
为了防止 Portainer 容器被删除或重建丢失其配置数据 (如用户、环境设置等),我们将在主机文件系统上创建一个目录,并将其直接挂载到容器中。这种方式称为绑定挂载 (bind mount)

hadoop01 (或其他你打算安装Portainer的Docker主机) 上执行:

mkdir -p /opt/portainer_data

说明:我们选择在 /opt 目录下创建 portainer_data 文件夹,你可以根据自己的习惯选择其他路径。

步骤 2:下载并运行 Portainer 容器
执行以下命令来拉取 Portainer Community Edition (CE) 镜像并启动容器

hadoop01 上执行:

docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /opt/portainer_data:/data portainer/portainer-ce:latest

命令参数解析:

-d: 后台运行容器 (detached mode)。
-p 8000:8000: 将主机的 8000 端口映射到容器的 8000 端口 (用于隧道代理,高级功能)。
-p 9443:9443: 将主机的 9443 端口 (HTTPS) 映射到容器的 9443 端口。这是主要的访问端口
--name portainer: 给容器命名portainer
--restart=always: 设置容器总是自动重启,除非手动停止。这保证了Docker服务重启后Portainer也会自动启动。
-v /var/run/docker.sock:/var/run/docker.sock: 这是关键一步。它将主机的Docker套接字文件挂载到容器内部,允许Portainer容器与主机的Docker守护进程通信,从而管理其他容器。
-v /opt/portainer_data:/data: (绑定挂载) 将我们在主机上创建/opt/portainer_data 目录挂载到容器的 /data 目录。Portainer的所有配置都会直接写入到这个主机目录中,实现了数据的持久化
portainer/portainer-ce:latest: 指定要运行的镜像

2.Portainer 基础使用教程

步骤 1:首次访问与创建管理员账户

  • 安装完成后,在你的浏览器中访问 Portainer 的 Web 界面。地址为 https://<你的服务器IP>:9443 (例如 https://192.168.121.131:9443)。
  • 由于使用的是自签名SSL证书,浏览器可能会提示“不安全”,请选择“高级”并继续访问
  • 首次访问时,Portainer 会要求你创建一个管理员 (admin) 用户。请设置一个强度足够的密码。

在这里插入图片描述
图注:Portainer 首次访问时,会引导您创建管理员账户。

步骤 2:连接到本地 Docker 环境

  • 创建管理员并登录后,Portainer 会自动检测到它可以通过 /var/run/docker.sock 连接到本地的 Docker 环境
  • 你通常会看到一个 “Get Started” 页面,上面有一个管理本地 Docker 环境的选项。点击它。

步骤 3:进入环境仪表盘 (Home / Environments)

  • 连接成功后,你将进入环境仪表盘。这里会列出所有Portainer管理的环境
  • 默认情况下,你会看到一个名为 local 的环境,代表当前主机的Docker。

在这里插入图片描述
图注:Portainer 的主仪表盘,列出了名为 local 的本地 Docker 环境,并展示了其基本信息。

步骤 4:探索 Docker 资源 (简单使用)

  • 查看容器:在环境仪表盘 (您的第二张图所示界面),点击 local 环境那一行蓝色的 “Live connect” 按钮或环境名称本身,即可进入该环境的详细仪表盘

在这里插入图片描述

  • 在左侧菜单栏点击 “Containers”。你会看到所有正在运行和已停止的容器列表。

在这里插入图片描述

  • 管理其他资源:同样地,你可以通过左侧菜单轻松地查看和管理 Images (镜像)、Volumes (卷)、Networks (网络) 等。

在这里插入图片描述
在这里插入图片描述

二、Docker 镜像原理深入解析

Docker 镜像是 Docker 的核心。它是一个轻量、独立、可执行的软件包,包含了运行某个应用所需的一切:代码、运行时、库、环境变量和配置文件。

1.Docker 镜像原理:分层理解

Docker 镜像的最大特点就是它采用了分层存储的结构。一个镜像不是一个单一的文件,而是由一系列只读 (read-only) 的层 (layers) 堆叠而成。

  • 层的来源:镜像的每一层都对应 Dockerfile 中的一条指令
  • 层的特性
    • 只读: 镜像的所有层都是只读的,无法被修改
    • 共享: 如果多个镜像都基于相同的父层构建,那么这些镜像在主机上共享这些相同的层,节省了大量磁盘空间

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.联合文件系统

为了管理这些层并呈现一个统一的文件系统视图,Docker 使用了联合文件系统技术 (如 Aufs, OverlayFS, Btrfs 等)。它的核心功能是将多个不同的目录 (即镜像的各个层) “联合挂载”同一个挂载点上。从容器内部看,你看不到这些分层,只能看到一个完整、正常的文件系统。

在这里插入图片描述

3.加载原理:从镜像到容器

这是理解 Docker 运行机制关键

  • 启动容器 (docker run): 当你从一个镜像启动容器时,Docker 并不会复制整个镜像。相反,它会保留所有只读的镜像层不变,并在最顶层添加一个新的、薄薄的、可写层 (Writable Layer),也称为 容器层 (Container Layer)
  • 写时复制:
    • 读操作: 当容器需要读取文件时,它会从上到下(从可写层到最底部的基础层)逐层查找
    • 写操作 (修改): 当容器需要修改一个已存在的文件时 (该文件位于下方的只读层),UFS 首先将该文件从只读层复制顶部的可写层,然后对可写层中的这个副本进行修改
    • 写操作 (新建): 当容器创建新文件时,它们直接被创建顶部的可写层中。
  • 容器的生命周期: 容器运行期间所有变化保存在这个可写层。当你删除容器 (docker rm)时,只有这个顶部的可写层会被删除

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/917346.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/917346.shtml
英文地址,请注明出处:http://en.pswp.cn/news/917346.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络爬虫(python)入门

一、网络爬虫介绍 网络爬虫&#xff08;Web Crawler&#xff09;是一种自动抓取互联网信息的程序&#xff0c;它能够高效地从海量网页中提取有价值的数据。作为数据采集的利器&#xff0c;爬虫技术在数据分析、搜索引擎、价格监控等领域有着广泛应用。本文将带你全面了解Pytho…

如何解决pip安装报错ModuleNotFoundError: No module named ‘plotnine’问题

【Python系列Bug修复PyCharm控制台pip install报错】如何解决pip安装报错ModuleNotFoundError: No module named ‘plotnine’问题 一、摘要 在使用 PyCharm 进行 Python 开发时&#xff0c;常常需要通过 pip install 安装第三方包。某天&#xff0c;你在终端或 PyCharm 控制…

语校网收录东京语言学校150所:数据结构建模与工程实现全解

语校网收录东京语言学校150所&#xff1a;数据结构建模与工程实现全解 一、为什么语言学校的信息抓取如此困难&#xff1f; 在日语教育领域&#xff0c;“语言学校”是一类极度碎片化的机构体系&#xff0c;尤其在东京地区&#xff0c;2025年时点上已合法设立的语言学校已超1…

【按下电源键后,电脑里发生了什么?——BIOS:启动世界的“第一把钥匙”】

当你按下电源键的瞬间&#xff0c;电脑从一片死寂中“苏醒”。但你是否想过&#xff1a;是什么让屏幕亮起、风扇转动、硬件逐一激活&#xff1f; 这背后&#xff0c;有一个隐藏在主板上的“小程序”在默默掌控全局——它就是 BIOS&#xff08;Basic Input/Output System&#x…

局域网五子棋工具 多人对战无限制

软件介绍 今天推荐一款经典的PC端五子棋游戏——GoBang&#xff0c;绿色免安装版本&#xff0c;完全免费&#xff0c;即开即用&#xff0c;轻松享受对弈乐趣。 游戏模式 软件提供三种对战模式&#xff1a;人人对战、人机对抗以及局域网联机游戏&#xff0c;满足不同玩家的社…

分布式弹幕系统设计

需求:分布式弹幕广播分布式方案1:适用redis 发布订阅来进行不同ws服务器之间的通信优点:适用小系统方案2:对ws服务器进行一致性hash获取ws服务的接入点优点:大型系统缺点:视频连接不均匀挑战点:广播速度聚合广播和线程池来进行优化

梦幻花瓣雨

1. 花瓣设计四种花瓣类型&#xff1a;创建了四种不同形状和颜色的花瓣&#xff08;粉红、淡紫、浅粉和蓝绿色&#xff09;自然形态&#xff1a;使用CSS渐变和复杂边框半径模拟真实花瓣的不规则形状柔和阴影&#xff1a;为花瓣添加微妙的阴影增强立体感2. 动画效果物理模拟&…

React 闭包陷阱及解决方案与 React 16/17/18 版本区别

一、React 闭包陷阱详解1. 什么是闭包陷阱React 闭包陷阱是指在函数组件中使用 Hook&#xff08;特别是 useEffect 和 useCallback&#xff09;时&#xff0c;由于闭包特性导致访问到旧的 state 或 props 值&#xff0c;而非最新值的现象。2. 典型场景示例function Counter() {…

[BJDCTF2020]EasySearch

首先尝试了一下sql注入&#xff0c;但是没有找到不同回显。直接用sqlmap扫描一下&#xff0c;因为这边用的是POST请求&#xff0c;所以需要抓包将请求复制到txt文件中然后使用命令sqlmap -p bp.txt。也没有发现注入漏洞。 再进行目录扫描试试&#xff1a; [02:33:43] 403 - …

【Linux】基本指令的使用 and 面试常问

1、man 指令使用方法&#xff1a;man Linux指令。功能&#xff1a;相当于字典&#xff0c;查找指令的用法。常用选项&#xff1a;-k&#xff1a;根据关键字搜索联机帮助。num&#xff1a;只在第num章节查找。-a&#xff1a;将所有章节的都显示出来&#xff0c;比如man printf它…

零基础 “入坑” Java--- 十六、字符串String 异常

文章目录一、String1.字符串的不可变性2.字符串的修改3.StringBuilder和StringBuffer4.【字符串练习】4.1 字符串中的第一个唯一字符4.2 字符串最后一个单词的长度4.3 验证回文串二、异常1.初识异常2.异常的分类3.异常的处理4.异常处理流程总结5.自定义异常在上一章节中&#x…

梯度下降在大模型训练中的作用与实现

梯度下降&#xff08;Gradient Descent&#xff09;是深度学习中最核心的优化算法之一。大模型&#xff08;如GPT、BERT&#xff09;在训练时需要优化数十亿甚至上千亿的参数&#xff0c;而梯度下降及其变体&#xff08;如SGD、Adam&#xff09;正是实现这一优化的关键工具。它…

【JVS更新日志】开源框架、APS排产、企业计划、物联网、逻辑引擎7.30更新说明!

项目介绍 JVS是企业级数字化服务构建的基础脚手架&#xff0c;主要解决企业信息化项目交付难、实施效率低、开发成本高的问题&#xff0c;采用微服务配置化的方式&#xff0c;提供了低代码数据分析物联网的核心能力产品&#xff0c;并构建了协同办公、企业常用的管理工具等&…

Eclipse中导入新项目,右键项目没有Run on Server,Tomcat的add and remove找不到项目

原因分析没有勾选Dynamic Web Module、Java、JavaScriptDynamic Web Module版本问题解决方法Eclipse中右键项目选择Properties左侧点击project facets勾选Dynamic Web Module、Java、JavaScript&#xff0c;注意Dynamic Web Module版本问题,要和tomcat版本对应。- Dynamic Web …

IntelliJ IDEA 2025系列通用软件安装教程(Windows版)

前言 JetBrains系列开发工具&#xff08;如IntelliJ IDEA、PyCharm、WebStorm等&#xff09;是程序员们非常喜爱的集成开发环境。2025年最新版本带来了更多强大的功能和改进。本教程将详细介绍如何在Windows系统上安装JetBrains 2025系列软件。 最近挖到一个宝藏级人工智能学习…

乌鸫科技前端二面

1. 你能给我介绍一下你参与的重要项目&#xff0c;并重点介绍一下做的内容?通俗解释&#xff1a; 挑一个你觉得最拿得出手、技术含量最高的项目&#xff0c;说说这个项目是干什么的&#xff08;比如一个电商网站、一个后台管理系统&#xff09;&#xff0c;你在里面具体负责了…

《c++面向对象入门与实战》笔记

前年的书&#xff0c;翻出来整理一下7章.指针指针 sizeof为4*指针 sizeof为 所指类型的sizeof注意free后置空&#xff0c;避免野指针11章.类

easyExcel生成多个sheet的动态表头的实现

在使用 EasyExcel 实现“多个 Sheet 且每个 Sheet 表头是动态的”需求时&#xff0c;思路如下&#xff1a;✅ 实现思路概述 EasyExcel 的 ExcelWriter 支持多个 Sheet 写入。每个 Sheet&#xff1a; 使用 WriteSheet 创建&#xff1b;可以绑定一个动态生成的表头 List<List&…

SQL 连接类型示例:内连接与外连接

SQL 连接类型示例&#xff1a;内连接与外连接 示例数据表 假设我们有两个表&#xff1a; employees 表:emp_idemp_namedept_id1张三1012李四1023王五1034赵六NULLdepartments 表:dept_iddept_name101销售部102技术部104财务部1. 内连接 (INNER JOIN) 内连接只返回两个表中匹配的…

Ubuntu安装gpu驱动,cuda

系统初始化 1、安装基础软件 apt-get update apt-get -y install openssh-server openssh-client apt-utils freeipmi ipmitool sshpass ethtool zip unzip nano less git netplan.io iputils-ping mtr ipvsadm smartmontools python3-pip socat conntrack libvirt-clients li…