修改Docker容器bisheng-frontend中的靜態(tài)文件的操作步驟
教程將分為以下幾個(gè)部分:
- 教程目標(biāo):明確說(shuō)明本教程將教會(huì)你什么。
- 前提條件:列出執(zhí)行本教程所需的環(huán)境和工具。
- 操作步驟:
- 步驟一:進(jìn)入容器并定位文件
- 步驟二:將容器內(nèi)文件復(fù)制到本地
- 步驟三:在本地修改文件
- 步驟四:重新創(chuàng)建容器并掛載修改后的文件
- 總結(jié):簡(jiǎn)要回顧整個(gè)流程。
一、教程目標(biāo)
本教程將指導(dǎo)你如何安全地修改運(yùn)行中的 bisheng-frontend Docker 容器內(nèi)的靜態(tài)文件(如圖片、SVG 等)。我們將采用“復(fù)制文件 -> 本地修改 -> 掛載重啟”的最佳實(shí)踐,以避免直接在容器內(nèi)修改帶來(lái)的風(fēng)險(xiǎn)。
二、前提條件
- 已安裝 Docker 并能正常運(yùn)行。
- 已安裝
docker-compose(如果你的服務(wù)是通過(guò)docker-compose啟動(dòng)的)。 - 具有宿主機(jī)的命令行訪問(wèn)權(quán)限,并擁有
sudo權(quán)限(用于創(chuàng)建目錄和修改權(quán)限)。 - 確認(rèn)
bisheng-frontend容器正在運(yùn)行:
docker ps | grep bisheng-frontend
三、操作步驟
步驟一:進(jìn)入容器并定位目標(biāo)文件
首先,我們需要進(jìn)入容器內(nèi)部,找到需要修改的文件的具體路徑。
進(jìn)入 bisheng-frontend 容器的交互式終端:
docker exec -it bisheng-frontend /bin/bash
-it: 創(chuàng)建一個(gè)交互式的 TTY 終端。bisheng-frontend: 容器名稱。/bin/bash: 要執(zhí)行的命令。
在容器內(nèi)搜索需要修改的文件: 例如,我們要搜索所有圖片文件(.png, .jpg, .svg):
find / -name "*.png" -o -name "*.jpg" -o -name "*.svg" 2>/dev/null
2>/dev/null: 將無(wú)關(guān)的權(quán)限錯(cuò)誤信息丟棄,使輸出更干凈。
記錄文件路徑: 從搜索結(jié)果中,找到你需要修改的文件,并記下它的完整路徑。例如:
/usr/share/nginx/html/platform/assets/male-technologist-CcgkZdXy.png/usr/share/nginx/html/platform/assets/analysis.svg
退出容器: 完成文件定位后,退出容器終端。
exit
步驟二:將容器內(nèi)的文件復(fù)制到本地宿主機(jī)
為了安全地修改,我們將容器內(nèi)的整個(gè)靜態(tài)文件目錄復(fù)制到本地。
在宿主機(jī)上創(chuàng)建一個(gè)本地目錄,用于存放從容器中復(fù)制出來(lái)的文件:
mkdir -p /opt/bisheng-main/local-frontend
-p: 確保父目錄存在,如果不存在則一并創(chuàng)建。
(可選)修改本地目錄權(quán)限: 為了確保你當(dāng)前的用戶有權(quán)限讀寫該目錄,可以修改其權(quán)限。
# 將目錄所有者改為當(dāng)前用戶(推薦) sudo chown -R $USER:$USER /opt/bisheng-main/local-frontend # 或者,給予更寬松的權(quán)限(不推薦,但簡(jiǎn)單) # sudo chmod -R 775 /opt/bisheng-main/local-frontend
將容器內(nèi)的文件目錄復(fù)制到本地: 根據(jù)步驟一找到的路徑,我們復(fù)制其上級(jí)目錄(例如 /usr/share/nginx/html)到本地。
docker cp bisheng-frontend:/usr/share/nginx/html /opt/bisheng-main/local-frontend
- 這條命令會(huì)將容器內(nèi)的
/usr/share/nginx/html目錄及其所有內(nèi)容,復(fù)制到本地的/opt/bisheng-main/local-frontend/目錄下。復(fù)制完成后,本地路徑會(huì)是/opt/bisheng-main/local-frontend/html/...。
驗(yàn)證文件是否復(fù)制成功:
ls -l /opt/bisheng-main/local-frontend/html/platform/assets/
你應(yīng)該能看到你之前在容器內(nèi)找到的那些文件。
步驟三:在本地修改文件
現(xiàn)在,你可以在本地對(duì)文件進(jìn)行任意修改。
- 使用你喜歡的編輯器或工具,找到本地對(duì)應(yīng)的文件并進(jìn)行修改或替換。
- 本地文件路徑示例:
/opt/bisheng-main/local-frontend/html/platform/assets/male-technologist-CcgkZdXy.png - 重要:修改后的文件請(qǐng)務(wù)必保持與原文件相同的文件名。
- 本地文件路徑示例:
步驟四:重新創(chuàng)建容器并掛載修改后的文件
這是最關(guān)鍵的一步。我們將停止并刪除舊容器,然后創(chuàng)建一個(gè)新容器,并使用 Docker 的卷掛載功能,將我們修改好的本地目錄掛載到容器內(nèi),從而覆蓋原有的文件。
停止并刪除正在運(yùn)行的 bisheng-frontend 容器:
docker stop bisheng-frontend docker rm bisheng-frontend
- 注意:這會(huì)短暫中斷你的
bisheng-frontend服務(wù)。
(重要)確認(rèn)容器的網(wǎng)絡(luò): 為了確保新容器能和其他服務(wù)(如 bisheng-backend)通信,需要使用正確的網(wǎng)絡(luò)。
如果你使用 docker-compose:通常不需要手動(dòng)指定網(wǎng)絡(luò),docker-compose 會(huì)自動(dòng)管理。
如果你手動(dòng)運(yùn)行容器:
- a. 列出所有網(wǎng)絡(luò):
bash docker network ls - b. 找到
bisheng-frontend之前連接的網(wǎng)絡(luò)(通常是bisheng_default或docker_default)。你可以通過(guò)檢查哪個(gè)網(wǎng)絡(luò)包含bisheng-backend來(lái)確認(rèn):bash docker network inspect docker_default | grep "bisheng-backend" - c. 記下正確的網(wǎng)絡(luò)名稱,例如
bisheng_default。
重新啟動(dòng)容器,并掛載本地修改后的目錄: 使用 docker run 命令創(chuàng)建一個(gè)新容器。關(guān)鍵在于 -v (volume) 參數(shù)。
docker run -d \ --name bisheng-frontend \ --network bisheng_default \ # 替換為你在上一步確認(rèn)的網(wǎng)絡(luò)名稱 -p 3001:3001 \ -v /opt/bisheng-main/local-frontend/html/platform/assets:/usr/share/nginx/html/platform/assets \ cr.dataelem.com/dataelement/bisheng-frontend:latest
-v /local/path:/container/path: 這是卷掛載命令。它將本地的/opt/bisheng-main/local-frontend/html/platform/assets目錄,掛載到容器內(nèi)的/usr/share/nginx/html/platform/assets目錄。容器運(yùn)行時(shí),會(huì)優(yōu)先讀取掛載目錄中的文件,從而實(shí)現(xiàn)了文件替換。- 路徑映射技巧:盡量讓本地掛載的目錄結(jié)構(gòu)與容器內(nèi)的目錄結(jié)構(gòu)保持一致,這樣不易出錯(cuò)。
檢查容器是否成功啟動(dòng):
docker ps | grep bisheng-frontend
如果能看到 bisheng-frontend 并且狀態(tài)為 Up,則表示啟動(dòng)成功。
驗(yàn)證修改: 打開(kāi)瀏覽器或使用 curl 訪問(wèn)你的應(yīng)用,查看相應(yīng)的圖片或靜態(tài)資源是否已經(jīng)更新為你修改后的版本。
四、總結(jié)
通過(guò)以上步驟,你已經(jīng)成功地修改了 bisheng-frontend 容器中的靜態(tài)文件。這種“復(fù)制-修改-掛載”的方法是 Docker 環(huán)境下更新容器內(nèi)容的標(biāo)準(zhǔn)操作流程,它安全、可靠且易于管理。
如果你未來(lái)還需要修改其他文件,只需重復(fù)步驟三和步驟四即可,無(wú)需再重新復(fù)制整個(gè)目錄(除非容器內(nèi)的原始文件又發(fā)生了變化)。
以上就是修改Docker容器bisheng-frontend中的靜態(tài)文件的操作步驟的詳細(xì)內(nèi)容,更多關(guān)于Docker bisheng-frontend靜態(tài)文件修改的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
2023年windows?DockerDeskTop最新款4.18.0?全程保姆級(jí)安裝圖文教程
這篇文章主要介紹了2023年windows?DockerDeskTop最新款4.18.0?全程保姆級(jí)安裝圖文教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04
centos6使用docker部署kafka項(xiàng)目的方法分析
這篇文章主要介紹了centos6使用docker部署kafka項(xiàng)目的方法,結(jié)合實(shí)例形式分析了centos6環(huán)境下使用docker部署kafka項(xiàng)目的相關(guān)命令與使用技巧,需要的朋友可以參考下2020-02-02
Docker搭建PHP運(yùn)行環(huán)境完整步驟(圖文教程)
PHP是一種廣泛使用的編程語(yǔ)言,被用于Web開(kāi)發(fā)和服務(wù)器管理等各種用途,而Docker則是一種非常流行的容器化平臺(tái),可以方便地管理應(yīng)用程序和環(huán)境,這篇文章主要給大家介紹了關(guān)于Docker搭建PHP運(yùn)行環(huán)境的完整步驟,需要的朋友可以參考下2023-09-09
PVE下擴(kuò)展openwrt?for?x86分區(qū)大小方式
本文介紹了在PVE環(huán)境下如何對(duì)OpenWRT虛擬機(jī)的分區(qū)進(jìn)行擴(kuò)容,包括磁盤調(diào)整、軟件安裝、分區(qū)配置和系統(tǒng)引導(dǎo)等步驟,操作前需做好備份,以防數(shù)據(jù)丟失2024-10-10
zabbix監(jiān)控docker容器狀態(tài)【推薦】
這篇文章主要介紹了zabbix監(jiān)控docker容器狀態(tài)的相關(guān)資料,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-06-06
用docker實(shí)現(xiàn)Redis主從配置的示例代碼
在三臺(tái)服務(wù)器上用Docker部署Redis主從模式:Server1作為主節(jié)點(diǎn),Server2和Server3配置為從節(jié)點(diǎn)并連接主節(jié)點(diǎn),通過(guò)環(huán)境變量指定主IP,驗(yàn)證復(fù)制狀態(tài)以確保高可用性2025-09-09
寶塔創(chuàng)建Docker容器配置nginx的實(shí)現(xiàn)步驟
本文主要介紹了寶塔創(chuàng)建Docker容器配置nginx的實(shí)現(xiàn)步驟,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-06-06
docker安裝redis并以配置文件方式啟動(dòng)詳解
這篇文章主要介紹了docker安裝redis并以配置文件方式啟動(dòng)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12

