阿里云鏡像地址獲取,并安裝 docker的mysql和nginx等服務,java,python,ffmpeg,go等環境

阿里云那個鏡像地址獲取

阿里云鏡像加速器不是一個通用的 registry.cn-hangzhou.aliyuncs.com,而是你賬號專屬的,比如這樣:

https://abcd1234.mirror.aliyuncs.com

👉 登錄阿里云控制臺獲取:
阿里云鏡像加速器

然后替換 /etc/docker/daemon.json 里面的地址:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://<你的專屬ID>.mirror.aliyuncs.com"]
}
EOFsudo systemctl daemon-reload
sudo systemctl restart docker

mysql

數據持久化(推薦)

這樣容器刪除后,數據還在:

docker run -d \--name mysql8 \-p 3310:3306 \-e MYSQL_ROOT_PASSWORD=root \-v /mydata/mysql8:/var/lib/mysql \mysql:8.0

這里 /mydata/mysql8 是宿主機目錄,用來保存 MySQL 數據文件。


要不要我順便幫你寫一個 docker-compose.yml,這樣以后你只要 docker-compose up -d 就能快速啟動?

nginx

👌 對,你理解的沒錯。
用 Docker 跑 Nginx 的時候,一般需要:

  1. 把宿主機的前端項目文件夾映射到容器的 /usr/share/nginx/html(這樣才能訪問你自己的前端項目);

  2. 把宿主機的 Nginx 配置文件掛載到容器的 /etc/nginx/conf.d(這樣可以修改 Nginx 配置,不用進容器)。

我給你一個完整的安裝步驟:


1. 先拉取 nginx 鏡像

docker pull nginx:latest

2. 在 Linux 上創建目錄

假設你前端項目代碼放在 /mydata/frontend,Nginx 配置放在 /mydata/nginx/conf

mkdir -p /mydata/frontend
mkdir -p /mydata/nginx/conf

3. 準備一個默認配置文件

創建 /mydata/nginx/conf/default.conf

touch?/mydata/nginx/conf/default.conf

只寫server的內容就行

server {listen       80;server_name  localhost;location / {root   /usr/share/nginx/html;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}
}

4. 啟動 Nginx 容器

把端口、項目文件夾、配置文件都映射出來:

docker run -d \--name nginx \-p 8080:80 \-v /mydata/frontend:/usr/share/nginx/html \-v /mydata/nginx/conf:/etc/nginx/conf.d \nginx:latest

5. 驗證是否成功

  • 瀏覽器訪問:http://你的服務器IP:8080

  • 如果看到你放在 /mydata/frontend/index.html 的頁面,就說明成功了。

  • 修改 /mydata/nginx/conf/default.conf 后,只需要重啟容器:

docker restart nginx

修改配置

驗證配置是否正確

docker exec -it nginx nginx -t
?

修改配置并重新加載

vi /mydata/nginx/conf/default.conf
docker exec -it nginx nginx -s reload

?

? 總結:

  • /mydata/frontend → 存放前端項目(宿主機和容器共享)。

  • /mydata/nginx/conf → 存放配置文件。

  • Nginx 在容器里會用你宿主機的配置和靜態文件。


要不要我幫你直接寫一個 docker-compose.yml?這樣你就只需要 docker-compose up -d 就能跑起來,不用記長命令。

redis

👌 好的,很簡單,我給你一個最小化的 Redis Docker 啟動命令,不用密碼,端口映射到 6389


命令啟動方式

docker run -d \--name redis6389 \-p 6389:6379 \redis:latest \redis-server --appendonly yes --requirepass ""

說明

  • --name redis6389 :容器名字叫 redis6389

  • -p 6389:6379 :宿主機的 6389 → 容器里的 6379(Redis 默認端口)

  • redis:latest :拉取最新版 Redis

  • redis-server --appendonly yes :開啟持久化(避免宕機數據丟失)

  • --requirepass "" :不設置密碼(空字符串 = 無密碼)


進入 Redis

docker exec -it redis6389 redis-cli -p 6379

或者直接從宿主機連接:

redis-cli -h 127.0.0.1 -p 6389

持久化(推薦)

如果你想讓數據保存在宿主機,比如放在 /mydata/redis 目錄:

docker run -d \--name redis6389 \-p 6389:6379 \-v /mydata/redis:/data \redis:latest \redis-server --appendonly yes --requirepass ""

要不要我給你順手寫個 docker-compose.yml,這樣以后你一條命令就能啟動 Redis(端口 6389,無密碼,帶持久化)?

Java環境

Yum 安裝(可能是 OpenJDK 21)

先檢查倉庫里是否有 JDK 21:

yum search java-21

如果能找到(例如 java-21-openjdk),直接安裝:

sudo yum install -y java-21-openjdk java-21-openjdk-devel

驗證:

java -version

嗯,我懂了 👍

你之前確實執行過安裝 JDK 21 的命令,但現在運行 java -version 看到的還是 Java 11,說明系統上 可能已經安裝了 Java 21,但默認版本還沒切換過去

在 CentOS / RHEL 系統里,默認的 Java 版本由 alternatives 控制。

你可以用下面的命令查看和切換:

# 查看系統已安裝的 Java 版本
alternatives --display java# 或者交互式選擇版本
alternatives --config java

執行 alternatives --config java 后,你會看到類似這樣的列表:

There are 2 programs which provide 'java'.Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/java-11-openjdk-11.0.25/bin/java2           /usr/lib/jvm/java-21-openjdk-21.0.2/bin/javaEnter to keep the current selection[+], or type selection number:

👉 你只需要輸入 2(對應 java-21)回車,就能切換到 Java 21。

然后再驗證:

java -version

就應該顯示 openjdk version "21.0.x"


要不要我幫你寫一套命令,直接一步到位:

  1. 檢查系統有沒有裝 java-21

  2. 如果沒有就安裝

  3. 自動切換到 java-21 并驗證


python環境

明白了 😅,你當前的 Alibaba Cloud Linux 系統 不支持 DNF 模塊管理,所以 dnf module list python 返回為空。這種情況下,系統倉庫里沒有 Python 3.10 包,只能用 源碼編譯安裝

下面我給你一個 完整一鍵安裝 Python 3.10 的方案(源碼安裝 + 配置環境變量 + pip):


一鍵安裝 Python 3.10(源碼)

# 1. 安裝依賴
sudo yum groupinstall -y "Development Tools"
sudo yum install -y gcc gcc-c++ make bzip2 bzip2-devel zlib-devel xz-devel libffi-devel wget# 2. 下載 Python 3.10.15 源碼
cd /usr/src
sudo wget https://www.python.org/ftp/python/3.10.15/Python-3.10.15.tgz
sudo tar xzf Python-3.10.15.tgz
cd Python-3.10.15# 3. 編譯安裝到 /usr/local/python3.10
sudo ./configure --enable-optimizations --prefix=/usr/local/python3.10
sudo make -j$(nproc)
sudo make altinstall  # 注意:使用 altinstall 避免覆蓋系統 python# 4. 配置環境變量
sudo tee /etc/profile.d/python3.10.sh <<'EOF'
export PATH=/usr/local/python3.10/bin:$PATH
EOF
source /etc/profile.d/python3.10.sh# 5. 驗證
python3.10 --version
pip3.10 --version

說明

  • make altinstall:避免覆蓋系統默認 Python(防止破壞系統工具)

  • 安裝路徑 /usr/local/python3.10:獨立版本,不影響系統自帶 Python

  • pip 會隨 Python 一起安裝

  • 使用 source /etc/profile.d/python3.10.sh 刷新環境變量


如果你需要,我可以幫你寫一個 腳本版直接一條命令執行完所有步驟,安裝完成后可以直接使用 python3.10pip3.10

你希望我寫嗎?

python安裝依賴-節約內存寫法

python3.10 -m pip install --no-cache-dir -r requirements.txt

ffmpeg安裝

明白了,你現在的系統是 阿里云定制的 Linux 8(alinux3),阿里云 EPEL 源里并沒有 ffmpeg 包,所以 yum install ffmpeg 找不到。官方 EPEL 也沖突,直接安裝失敗。

有兩種解決方案:


方案 1:使用 RPM 包直接安裝 ffmpeg

  1. 下載適合 CentOS 8 / RHEL 8 的 ffmpeg 靜態包:

cd /tmp
wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz
tar -xvf ffmpeg-release-amd64-static.tar.xz
sudo cp ffmpeg-*/ffmpeg ffmpeg-*/ffprobe /usr/local/bin/
sudo chmod +x /usr/local/bin/ffmpeg /usr/local/bin/ffprobe
ffmpeg -version

這樣可以快速安裝,不用管 yum 源。


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

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

相關文章

conda環境導出

1. 激活你想要打包的環境首先&#xff0c;確保你激活了你要打包的 conda 環境&#xff1a;conda activate qwen2. 導出環境配置使用 conda 命令將當前環境的配置導出為一個 .yml 文件&#xff0c;記錄下環境中所有的依賴和版本&#xff1a;conda list --export > techgpt_en…

openEuler2403安裝部署Kafka

文章目錄 openEuler2403安裝部署Kafka with KRaft一、前言1.簡介2.架構3.環境 二、正文1.部署服務器2.基礎環境1&#xff09;JDK 安裝部署2&#xff09;關閉防火墻 3.單機部署1&#xff09;下載軟件包2&#xff09;修改配置文件3&#xff09;格式化存儲目錄4&#xff09;單機啟…

發布工業智能體,云從科技打造制造業AI“運營大腦”

近日&#xff0c;在2025世界智能產業博覽會重慶市工業智能體首發儀式現場&#xff0c;云從科技重磅發布經營決策-產線運營智能體&#xff0c;為制造業的智能化轉型提供了全新的解決方案。該智能體的亮相&#xff0c;不僅代表著人工智能技術在工業領域的深度應用&#xff0c;更標…

【Linux基礎】parted命令詳解:從入門到精通的磁盤分區管理完全指南

目錄 前言 1 parted命令概述 1.1 什么是parted 1.2 parted與fdisk的對比 1.3 parted的主要優勢 2 parted命令的安裝與基本語法 2.1 在不同Linux發行版中安裝parted 2.2 parted的基本語法 2.3 parted的工作模式 3 parted交互式命令詳解 3.1 交互式操作流程 3.2 主要…

如何在路由器上配置DHCP服務器?

在路由器上配置DHCP服務器的步驟因品牌&#xff08;如TP-Link、華為、小米、華碩等&#xff09;略有差異&#xff0c;但核心流程一致&#xff0c;主要包括登錄管理界面、開啟DHCP功能、設置IP地址池及相關參數。以下是通用操作指南&#xff1a; 一、準備工作 確保電腦/手機已連…

HTML和CSS學習

HTML學習 注釋 <!-- -->組成 告訴瀏覽器我是html文件<!DOCTYPE html> <title>瀏覽器標簽</title> <body> <!--- 其中是主要內容 ---> <p> 段落 </p> </body> </html> (結束點…

OpenTenBase vs MySQL vs Oracle,企業級應用數據庫實盤對比分析

摘要 因為工作久了的緣故&#xff0c;接觸過不少數據庫。公司的管理系統用的MySQL&#xff0c;財務系統用的Oracle。隨著時代發展&#xff0c;國產開源數據庫已經在性能上能與這些國際知名頂尖數據庫品牌相媲美&#xff0c;其中OpenTenBase以其開放環境和優越性能脫穎而出&…

Oracle 備份與恢復常見的七大問題

為了最大限度保障數據的安全性&#xff0c;同時能在不可預計災難的情況下保證數據的快速恢復&#xff0c;需要根據數據的類型和重要程度制定相應的備份和恢復方案。在這個過程中&#xff0c;DBA的職責就是要保證數據庫&#xff08;其它數據由其它崗位負責&#xff09;的高可用和…

StringBuilder類的數據結構和擴容方式解讀

目錄 StringBuilder是什么 核心特性&#xff1a; StringBuilder數據結構 1. 核心存儲結構&#xff08;基于父類 AbstractStringBuilder&#xff09; 2. 類定義與繼承關系 3. 數據結構的核心特點 StringBuilder數據結構的初始化方式 1. 無參構造&#xff1a;默認初始容量…

LangChain實戰(十七):構建與PDF/PPT文檔對話的AI助手

本文是《LangChain實戰課》系列的第十七篇,將專篇深入講解如何構建能夠與PDF和PPT文檔進行智能對話的AI助手。通過學習本文,您將掌握復雜格式文檔的解析技巧、文本與表格處理技術,以及實現精準問答的系統方法。 前言 在日常工作和學習中,PDF和PPT文檔是我們最常接觸的文檔…

魚眼相機模型

魚眼相機模型 最近涉及魚眼相機模型、標定使用等&#xff0c;作為記錄&#xff0c;更新很久不曾更新的博客。 文章目錄魚眼相機模型1 相機成像2 魚眼模型3 畸變3.1 適用針孔和MEI3.2 Kannala-Brandt魚眼模型4 代碼實現1 相機成像 針孔相機&#xff1a;所有光線從一個孔&#xf…

大語言模型提示詞工程詳盡實戰指南

引言&#xff1a;與大型語言模型&#xff08;LLM&#xff09;高效對話的藝術大型語言模型&#xff08;LLM&#xff09;——例如我們熟知的GPT系列、Claude、Llama等——在自然語言處理&#xff08;NLP&#xff09;領域展現了驚人的能力&#xff0c;能夠執行文本摘要、翻譯、代碼…

HTTP 請求體格式詳解

1. 概覽與概念 Content-Type&#xff1a;HTTP 請求/響應頭&#xff0c;表示消息體的媒體類型&#xff08;MIME type&#xff09;。服務端用它決定如何解析請求體。常見場景&#xff1a; 純結構化數據&#xff08;JSON&#xff09; → application/json表單 文件上傳 → multip…

事務設置和消息分發

事務 RabbitMQ是基于AMQP協議實現的&#xff0c;該協議實現了事務機制&#xff0c;因此RabbitMQ也支持事務機制. SpringAMQP也提供了對事務相關的操作&#xff0c;RabbitMQ事務允許開發者確保消息的發送和接收是原子性的&#xff0c;要么 全部成功&#xff0c;要么全部失敗.| 前…

Python 中 try / except / else / finally 異常處理詳解

1. 基本結構 try:# 可能會拋出異常的代碼 except SomeException as e:# 捕獲并處理異常 else:# 如果 try 中代碼沒有異常&#xff0c;就執行這里 finally:# 無論是否發生異常&#xff0c;最后都會執行這里2. 各部分的作用 try 用途&#xff1a;包含可能發生異常的代碼段。如果代…

冰火島 Tech 傳:Apple Foundation Models 心法解密(下集)

引子 上集說到冰火島冰屋內,謝遜、張翠山、殷素素三人親見 “指令(Instructions)” 如何讓 AI 脫胎換骨,從木訥報地名的 “愣頭青”,變身為文采斐然的 “旅行作家”。 正當素素驚嘆這 AI 武學的奇妙時,謝遜卻突然神色一凜,指著手腕上用冰屑刻的 “4096” 字樣道:“這等…

Qt信號與槽機制全面解析

? 1. 核心概念信號與槽是Qt獨創的一種對象間通信機制&#xff0c;它使得一個對象的狀態變化或事件發生能夠自動通知其他對象作出響應&#xff0c;從而實現高度解耦的代碼設計。1.1 信號&#xff08;Signals&#xff09;定義&#xff1a;信號是由對象在特定事件發生時發出&…

2025年COR SCI2區,基于近似細胞分解的能源高效無人機路徑規劃問題用于地質災害監測,深度解析+性能實測

目錄1.摘要2.問題描述與數學模型3.能源網格混合元啟發式算法4.結果展示5.參考文獻6.代碼獲取7.算法輔導應用定制讀者交流1.摘要 本文提出了一種能源高效的無人機路徑規劃方法&#xff08;EURP&#xff09;用于監測分散的地質災害易發區域&#xff0c;通過建立無人機飛行模式的…

LangChain關于提示詞的幾種寫法

上文中 <---->(可點擊移步查閱),我們已經了解到LangChain如何編寫調用大模型的一個基本框架, 在編寫完這個基本框架后,就要與大模型進行交互了,這時候,就需要我們編寫提示詞了, 那么以下,就會介紹提示詞的幾種編寫方式 1 可攜帶變量的提示詞 1.1 PromptTempla…

CyberPoC 是一個現代化的網絡安全練習和競賽平臺,支持容器化部署的安全挑戰,為用戶提供實踐網絡安全技能的環境。

工具介紹 CyberPoC 是一個現代化的網絡安全練習和競賽平臺&#xff0c;支持容器化部署的安全挑戰&#xff0c;為用戶提供實踐網絡安全技能的環境。 &#x1f680; 快速開始 使用 Docker Compose (推薦) 克隆項目 git clone https://github.com/dushixiang/cyberpoc.gitcd cy…