安裝docker可視化工具 Portainer中文版(ubuntu上演示,所有docker通用) 支持控制各種容器,容器操作簡單化 降低容器門檻

?以下有免費的4090云主機提供ubuntu22.04系統的其他入門實踐操作

地址:星宇科技 | GPU服務器 高性能云主機 云服務器-登錄

相關兌換碼星宇社區---4090算力卡免費體驗、共享開發社區-CSDN博客

兌換碼要是過期了,可以私信我獲取最新兌換碼!!!

之所以推薦給大家使用,是因為上面的云主機目前是免費使用的,不需要大家再去安裝虛擬機,部署虛擬機,環境都搭配好了,非常適合新手入門,減少搭建的時間,把時間都用在實踐上。

一、概念準備

Portainer 是一款用于簡化 Docker 和 Kubernetes 環境管理的開源工具,它通過提供一個集中化的管理界面大大降低了容器技術的學習曲線,并提高了工作效率。

如何利用 Docker 在本地內部署 Portainer 并通過實踐操作實現外網訪問本地局域網部署的 Portainer 。

Portainer 支持?X86ARM、?ARM64?平臺的系統

在這里我們通過ubuntu22.04的操作系統進行演示

二、安裝Portainer流程

1、安裝docker

如果沒有的話參考下面這篇文章

在 Ubuntu 22.04 上安裝 Docker 25.0.5 其他版本類似-CSDN博客

想知道自己機器本身有沒有docker 通過下面命令查找

docker --version

?

有類似的輸出 說明是有docker的,還會給出對應的docker版本

2、安裝Portainer

方法一 通過Docker Hub(速度慢,修改有門檻)
?
docker pull outlovecn/portainer-cn?
#或者?
docker pull?ghcr.io/outlovecn/portainer-cn:main?

第一個容易出現連接超時 如下圖? ?推薦第二個,但是下載速度慢,需要配置加速器?

?

第一個的原因是為什么放在文末解決?

接下來走下一步

# 文件格式版本,一般固定 3.8
version: "3.8"# 服務(容器)列表
services:portainer:# 鏡像:官方社區版(CE)帶中文漢化image: portainer/portainer-ce:latest# 容器運行后的真實名字,方便 docker ps 查看container_name: portainer# 重啟策略:只要沒被人為 stop,異常退出會自動拉起restart: unless-stopped# 端口映射:左邊是宿主機端口,右邊是容器端口ports:- "9000:9000"   # Web UI 端口- "8000:8000"   # Edge Agent 端口(可選)# 數據卷:左邊是卷名或宿主路徑,右邊是容器內部路徑volumes:# 持久化 Portainer 配置、數據庫- portainer_data:/data# 把宿主機 Docker Socket 掛進來,使 Portainer 可以管理本機 Docker- /var/run/docker.sock:/var/run/docker.sock# 環境變量:時區environment:TZ: Asia/Shanghai# 健康檢查:每 30 秒用 curl 檢測 9000 端口是否正常healthcheck:test: ["CMD", "curl", "-f", "http://localhost:9000/api/status"]interval: 30stimeout: 10sretries: 3# 卷聲明:portainer_data 會被 Docker 自動創建為 named volume
volumes:portainer_data:

下面是對上面代碼的表格解釋,可自行修改和優化

語句作用建議
version: "3.8"聲明 compose 文件格式的版本號一般保持 3.8 即可,除非你的 Docker Engine 非常舊
services:定義要啟動的容器集合下面縮進一格的都是“一個容器”
portainer:這個容器的邏輯名字,可隨意改改名后?container_name?最好一起改,方便記憶
image: outlovecn/portainer-cn:latest指定鏡像源想換官方版可改成?portainer/portainer-ce:latest
container_name: portainer真正跑起來的容器名字不能與已有容器重名
restart: unless-stopped只要用戶沒手動?docker stop,任何情況退出都會自啟測試環境可改成?no
ports: - "8000:8000"把宿主機 8000 端口映射到容器 8000 端口宿主機端口沖突時改左邊,如?"18000:8000"
- "9000:9000"同上,9000 是 Portainer Web UI 端口常用改法?"9001:9000"
volumes:把宿主機目錄或卷掛進容器
- portainer_data:/data把名為?portainer_data?的卷掛到?/data卷名可改,數據會持久化
- /var/run/docker.sock:/var/run/docker.sock讓 Portainer 能管理宿主機的 Docker生產環境出于安全考慮,可以改用 TCP 方式
environment: TZ: Asia/Shanghai設置容器時區國外服務器可改成?UTC
healthcheck:自定義健康檢查
test: ["CMD", "wget", "--spider", "http://localhost:9000/api/status"]每 30 秒用 wget 去訪問自身 9000 端口如果鏡像里沒有 wget,可換成 curl
interval: 30s timeout: 10s retries: 3檢查間隔 / 單次超時 / 重試次數調錯時可以適當加大

方法一優化說明(關鍵改進點)

版本升級

version: "3.8":使用新版本 Compose 語法(兼容性更好,支持更多特性)

安全與資源控制

端口精簡:移除?8000?端口(僅需管理 Edge 設備時啟用)

健康檢查:自動監控服務狀態,異常時觸發重啟。

存儲優化

命名卷:將?./dockerconfig/portainer?改為命名卷?portainer_data,避免路徑依賴問題,提升數據持久化可靠性。

穩定性增強

restart: unless-stopped:手動停止后不再自動重啟,更符合運維預期

時區配置:通過?TZ: Asia/Shanghai?顯式設置容器時區(避免日志時間混亂)。

方法二 拉取portainer鏡像
1、拉取portainer對應鏡像

拉取鏡像網址Install Portainer BE with Docker on Linux | Portainer Documentation

docker pull portainer/portainer:last
#可刪掉后面的":last"

由于我加了last,會下載最新的,不加的話不影響后續操作

對鏡像打tag(可選)

docker tag portainer/portainer:latest myrepo/portainer:v1.0
#驗證tag有沒有打成功
docker images | grep portainer

如果成功了,能看到有兩條記錄,第一列是名字,可以看到名字不同,第二列是版本號 第三列是對應的ID? 可以看到IMAGE ID 相同

我們就可以通過新名字運行容器,如

docker run -d -p 9000:9000 --name portainer myrepo/portainer:v1.0

2、根據portainer鏡像開始啟動容器
sudo docker run -d \
# 以“后臺守護進程”方式啟動容器-p 8000:8000 \
# 把宿主機的 8000 端口映射到容器 8000 端口-p 9000:9000 \
# 把宿主機的 9000 端口映射到容器 9000 端口--name portainer \
# 給容器起個名字叫 portainer(方便 docker ps/stop/rm)--restart=always \
# 只要 Docker 服務啟動,這個容器就跟著自動重啟-v /var/run/docker.sock:/var/run/docker.sock \
# 把宿主機的 Docker 套接字掛進去,讓 Portainer 能“管理”宿主機 Docker-v portainer_data:/data \
# 把名為 portainer_data 的卷掛到容器 /data 目錄,持久化配置 如果沒有提前創建,會自動創建myrepo/portainer:v1.0
# 用本地(或私有倉庫)已經打好 tag 的鏡像
#myrepo/portainer:v1.0  更換成對應容器名

?-v portainer_data:/data \? 這個命令的提前創建命令如下

docker volume create portainer_data

如果有下面錯誤 要看有沒有輸錯(拼寫錯誤),或者是格式不對(多余空格等)

第三個框里面的permission denied是沒有sudo的原因導致的

可以發現咱們的容器已經開出來了,之所以選擇10001,是因為咱們的虛擬機是在星宇云社區上開出來的,允許的業務端口是10000和10001,在這里咱們選擇對應宿主機的10001,一會才能通過公網訪問咱們的portainer的web服務

查看端口占用

sudo lsof -i:10001
#查看其他端口,修改10001即可

可以發現,10001端口已經被容器占用了,這樣就不影響我們訪問portainer

三、放行portainer端口

放行portainer特定的端口

可參考linux入門,ubuntu22.04系統里的ssh服務(一)(含部分防火墻操作),方便開發-CSDN博客

上面文章提供了防火墻的放行操作,這里也在寫一次

sudo iptables -A INPUT -p tcp --dport 10001 -j ACCEPT
iptables -L -n
#查看放行規則#二選一
sudo ufw allow 10001/tcp  
sudo ufw reload
#放行10001端口  重新加載防火墻sudo ufw status numbered 
#查看防火墻規則是否有對應端口放行

放行對應的端口并驗證

如果有寶塔的話,放行端口更方便,參考下面這篇文章即可

入門級操作 開肝!!!寶塔賬號密碼修改、IP白名單訪問限制等等操作 (二)寶塔忘記密碼怎么辦、重置密碼大全~!-CSDN博客

四、訪問portainer服務

1、如果是星宇云社區開出來的虛擬機(必看)

跟開頭一樣網址是GPU租賃,GPU服務器租用,GPU租用平臺-星宇科技

登陸后找到控制臺

找到對應機器

查看IP和對應端口

因為社區的機器加了防火墻防護所以

????????第一行遠程端口是指外網ssh的連接端口,第二行業務端口10000是指機器本身的ip+10000端口可以通過外網157.xxx.xxx.xxx:40225訪問,第三行同理,設計了部分網絡的跳轉,這里需要一定的基礎理解

因此portainer的web訪問地址是:http://157.148.20.77:xxxx

末尾的端口就看我們是把portainer的web的訪問端口指向機器的哪一個業務端口了

2、如果是在自己電腦弄

訪問地址:https://本機IP:xxx

xxx指向對應得端口即可

五、故障排除

方法一的解決方案是更換鏡像源

配置docker的json文件即可?

sudo nano /etc/docker/daemon.json

鏡像源地址可以參考

在 Ubuntu 22.04 上安裝 Docker 25.0.5 其他版本類似-CSDN博客

文章里面提供了我自己常用的鏡像加速源,非常好用,這里給出幾個示例

騰訊云https://mirror.ccs.tencentyun.com
網易https://hub-mirror.c.163.com
中國科技大學https://docker.mirrors.ustc.edu.cn
七牛云https://reg-mirror.qiniu.com

或者用下面方法配置鏡像源也可以 (容易出錯,新手不建議)

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://<你的ID>.mirror.aliyuncs.com"]
}
EOF#https://<你的ID>.mirror.aliyuncs.com  換成自己賬號的阿里云加速

相關操作參考下面這篇文章的末尾

centos安裝docker小白教程(詳細版)-CSDN博客

這個方法非常不建議,而且阿里云的鏡像加速源個人感覺不穩定!

sudo systemctl daemon-reload
sudo systemctl restart docker
#重啟docker即可

后面portainer的web上得操作后續更新!

后續更新請及時關注吧

請各位帥哥美女們多多支持!!小花花小心心? 更多入門知識慢慢補充啦

后期持續關注!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/89764.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/89764.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/89764.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ansible批量部署zabbix客戶端

?ansible編寫劇本步驟 1??創建roles目錄結構2??在group_vars/all/main.yml中定義變量列表3??在tasks目錄下編寫tasks任務4??在files目錄下準備部署文件5??在templates目錄下創建j2模板文件6??在handlers目錄下編寫handlers7??在roles目錄下編寫主playbook8??運…

螞蟻數科AI數據產業基地正式投產,攜手蘇州推進AI產業落地

近日&#xff0c;螞蟻數科AI數據產業基地在太倉智匯谷科技創新園正式投產。該基地作為蘇州市首個AI數據產業基地&#xff0c;旨在通過跨行業人才與前沿技術&#xff0c;為長三角制造業、金融、醫療等領域的大模型落地提供場景化、高質量的訓練數據支撐。數據被視為AI學習的核心…

計算機的網絡體系及協議模型介紹

目錄 1、網絡協議介紹 1.1、定義 1.2、基本作用 1.3、協議的主要內容 2、網絡協議分層 2.1、協議分層原因 2.2、網絡協議分層的缺點 2.3、OSI協議和TCP/IP協議的聯系 3、TCP/IP 協議族 3.1、定義介紹 3.2、組成 1、應用層 2、運輸層 3、網絡層 3.3、底層流程 4、…

密碼管理安全防御

密碼管理是信息安全的核心環節,其目標是通過規范密碼的生成、存儲、傳輸、驗證和生命周期管理,防止未授權訪問,保護用戶賬號和系統資源的安全。以下從核心原則、技術實踐、常見問題及解決方案等方面詳細說明: 一、密碼管理的核心原則 密碼管理需遵循“安全性”與“可用性…

Java異步日志系統性能優化實踐指南:基于Log4j2異步Appender與Disruptor

Java異步日志系統性能優化實踐指南&#xff1a;基于Log4j2異步Appender與Disruptor 一、技術背景與應用場景 在高并發的后端應用中&#xff0c;日志記錄往往成為性能瓶頸之一。同步寫日志會阻塞業務線程&#xff0c;導致響應延遲&#xff1b;而簡單的異步隊列實現又可能出現積壓…

Mybatis07-緩存

一、緩存機制的原理計算機每次從mysql中執行sql語句&#xff0c;都是內存與硬盤的通信&#xff0c;對計算機來說&#xff0c;影響效率。因此使用緩存機制。1-1、MyBatis 的緩存機制&#xff1a;執行 DQL&#xff08;select 語句&#xff09;的時候&#xff0c;將查詢結果放到緩…

【機器學習深度學習】LoRA 與 QLoRA:大模型高效微調的進階指南

目錄 前言 一、LoRA&#xff1a;低秩微調的經典之作 二、QLoRA&#xff1a;效率與精度的升級版 三、LoRA vs QLoRA&#xff1a;如何選擇&#xff1f; 3.1 性能維度對比 3.2 根據「顯卡資源」選擇 3.3 根據「任務類型與目標」選擇 3.4 根據「模型規模」選擇 3.5 根據…

教育行業網絡升級最佳實踐:SD-WAN、傳統方案與混合方案對比分析

隨著教育行業的數字化轉型不斷深入&#xff0c;網絡的穩定性、靈活性和安全性成為各類教育應用&#xff08;如遠程課堂、智慧校園和教育云平臺&#xff09;的核心支撐。然而&#xff0c;傳統的 MPLS 專線方案成本高、擴展性差&#xff0c;而純 SD-WAN 的方案在極高可靠性要求的…

[黑馬頭條]-文章列表加載

目錄 1.1)需求分析 1.2)表結構分析 ap_article 文章基本信息表 ap_article_config 文章配置表 ap_article_content 文章內容表 導入文章數據庫 實現思路 接口定義 功能實現 定義接口 編寫mapper文件 編寫業務層代碼 實現類&#xff1a; 定義常量類 編寫控制器代碼 …

使用TIANAI-CAPTCHA進行行為驗證碼的生成和緩存的二次校驗

1.導入依賴&#xff1a;<dependency><groupId>cloud.tianai.captcha</groupId><artifactId>tianai-captcha-springboot-starter</artifactId><version>1.5.2</version> </dependency>2.在application.yml中配置驗證碼相關配置…

db.refresh()的重復使用和db.rollback()

db.refresh()在 SQLAlchemy 中&#xff0c;db.refresh() 用于從數據庫中重新加載對象的狀態&#xff0c;確保對象屬性與數據庫中的實際數據保持一致。下面詳細介紹其使用場景和作用&#xff1a;1.獲取數據庫生成的值當數據庫自動生成字段&#xff08;如自增 ID、默認值、觸發器…

《Web安全之機器學習入門》讀書筆記總結

目錄 一、案例總結 1、基礎知識 &#xff08;1&#xff09;第1章 通向智能安全的旅程 &#xff08;2&#xff09;第2章 打造機器學習工具箱 &#xff08;3&#xff09;第3章 機器學習概述 &#xff08;4&#xff09;第4章 Web安全基礎 2、安全案例 &#xff08;1&#…

github 近期熱門項目-2025.7.20

github 近期熱門項目-2025.7.20 GitHub 上近期熱門或趨勢項目的信息可以從多個來源獲取,包括 GitHub Trending 頁面、技術社區推薦、以及各大技術媒體的報道。以下是一些近期在 GitHub 上備受關注的項目類別和示例: 1. AI 與機器學習項目 隨著 AI 技術的快速發展,許多開源…

使用Python清理Excel中的空行和單元格內部空行:初學者指南

前言 作為數據處理人員或辦公室工作者,你可能經常遇到Excel文件中存在多余空行或單元格內有多余空行的問題。這些不必要的空白會影響數據的美觀性,更重要的是會給后續的數據分析、合并或處理帶來麻煩。本文將介紹一個簡單的Python腳本,幫助你高效地解決這些問題。 很多工具…

華為歐拉系統(openEuler)安裝 Docker 容器完整教程

&#x1f525; 前言&#xff1a;在國產化操作系統日益普及的當下&#xff0c;華為歐拉系統&#xff08;openEuler&#xff09;憑借其穩定性和安全性受到不少用戶青睞。但 Docker 官方暫未提供對 openEuler 的原生支持&#xff0c;不過好在 openEuler 與 CentOS 底層架構兼容&am…

數據結構--JDK17新增語法和順序表

一.yield關鍵字用于switch語句上的case代碼塊的返回值舉例&#xff1a;二.var關鍵字作用&#xff1a;當類型名字較長時可以簡化代碼。注意事項&#xff1a;1.不能使用var來聲明字段2.不能使用var來聲明方法參數3.不能使用var來聲明方法返回類型4.使用時必須初始化&#xff0c;但…

1 滲透基礎

目錄 基礎前沿 1 vulhub環境搭建 1 proxychains工具&#xff1a;編輯配置文件 2 docker docker環境搭建 配置docker的代理&#xff1a; 2 nginx編譯安裝--FPM 1 php.ini 2 php-fpm 3 nginx 4 nginx php-fpm php 1 基本角色分工 2. 請求處理全流程 步驟 1&#xff…

基于Java+SpringBoot 的榆林特色旅游網站

源碼編號&#xff1a;S678源碼名稱&#xff1a;基于SpringBoot 的榆林特色旅游網站用戶類型&#xff1a;雙角色&#xff0c;用戶、管理員數據庫表數量&#xff1a;22 張表主要技術&#xff1a;Java、Vue、ElementUl 、SpringBoot、Maven運行環境&#xff1a;Windows/Mac、JDK1…

Python設計模式深度解析:單例模式(Singleton Pattern)完全指南

Python設計模式深度解析&#xff1a;單例模式&#xff08;Singleton Pattern&#xff09;完全指南前言什么是單例模式&#xff1f;單例模式的三個關鍵要素基礎實現&#xff1a;異常控制式單例Python中的經典單例實現1. 使用 __new__ 方法實現2. 線程安全的單例實現3. 裝飾器實現…

LVS 原理詳解及部署(包含實驗案例)

一、集群和分布式簡介1.系統性能擴展方式Scale Up&#xff08;向上擴展&#xff09;&#xff1a;通過增強單臺服務器的硬件性能&#xff08;如提升 CPU、內存、存儲等&#xff09;來提高處理能力&#xff0c;適用于業務初期或對單點性能要求高的場景。這種方式簡單易行&#xf…