四、Portainer圖形化管理實戰與Docker鏡像原理

作者: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…