如何將資源前端通過 Docker 部署到遠程服務器

作為一個程序員,在開發過程中,經常會遇到項目部署的問題,在現在本就不穩定的大環境下,前端開發也需要掌握部署技能,來提高自己的生存力,今天就詳細說一下如何把一個前端資源放到遠程服務器上面通過docker部署,并且可以在瀏覽器中訪問前端頁面;

前提:你有一個遠程服務器,并且可以通過 SSH 工具訪問
步驟一:安裝 Docker————進入遠程服務器上面操作

1. 使用 SSH 連接到你的遠程服務器。使用以下命令:

命令格式為:?ssh 客戶端用戶名@服務器ip地址?

ssh your_username@your_server_ip

eg:?

2. 更新現有的軟件包索引

sudo apt-get update

3.?安裝必要的包,這些包允允許 apt (Linux系統的命令行工具,類似cmd)使用 HTTPS訪問軟件包

sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release

4.?添加 Docker 官方的 GPG 密鑰,這確保你從可信來源安裝 Docker:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

5. 設置穩定的 Docker 存儲庫,通過添加 Docker 的 APT 軟件源,可以從 Docker 官方倉庫安裝 Docker;

echo \"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

6.?安裝 Docker Engine?,更新軟件包索引并安裝最新版本的 Docker Engine 和容器運行時:

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

7.?驗證 Docker 安裝是否成功,運行一個測試容器來驗證 Docker 是否正確安裝:

sudo docker run hello-world

步驟二:準備前端靜態網頁————本地電腦上面操作

1. 創建項目文件夾;

????????在自己電腦上創建一個新的項目文件夾,例如 my-static-website

2. 將你的前端靜態網頁文件放入項目文件夾中;

????????將你的靜態網頁文件(例如 index.html, style.css, script.js 等)放入 my-static-website 文件夾

3. 創建 Dockerfile 文件;

????????在項目文件夾中創建一個 Dockerfile 文件,用于定義 Docker 鏡像的構建過程。以下是一個使用 Nginx 作為基礎鏡像的 Dockerfile 示例

# 使用官方 Nginx 鏡像作為基礎鏡像
FROM nginx:alpine# 將當前目錄下的所有文件復制到 Nginx 容器中的默認 html 目錄
COPY . /usr/share/nginx/html# 暴露容器的 80 端口
EXPOSE 80# 運行 Nginx
CMD ["nginx", "-g", "daemon off;"]

步驟三:構建 Docker 鏡像————本地電腦上面操作

1.?導航到項目文件夾;使用cmd終端或命令行工具進入你的項目文件夾中

cd path_to_your_project_folder/my-static-website

2.?構建 Docker 鏡像

運行以下命令來構建 Docker 鏡像:

docker build -t my-static-website .

解釋:

  • docker build: 構建一個新的 Docker 鏡像。
  • -t my-static-website: 為鏡像指定一個標簽(my-static-website)。
  • .: 表示 Dockerfile 位于當前目錄

3.?確認 Docker 鏡像已構建成功?;運行以下命令查看本地 Docker 鏡像列表:

docker images

步驟四:鏡像上傳

這里提供兩種上傳方式,一種是上傳到指定鏡像庫,然后從服務器上通過pull命令拉取;

另外針對離線環境,與外網隔絕的情況下,可以通過把鏡像打成tar包進行手動上傳到服務器;

方式一:推送 Docker 鏡像到 Docker Hub(或其他鏡像倉庫)————本地電腦上面操作

1. 登錄 Docker Hub 運行以下命令登錄到 Docker Hub:

docker login

2.?標記鏡像;將構建的本地鏡像標記為 Docker Hub 上的鏡像:

docker tag my-static-website your_dockerhub_username/my-static-website

解釋:

  • docker tag: 為本地鏡像創建一個新的標簽。
  • my-static-website: 本地鏡像名稱。
  • your_dockerhub_username/my-static-website: Docker Hub 上的鏡像名稱。

3.?推送鏡像 將標記的鏡像推送到 Docker Hub:

docker push your_dockerhub_username/my-static-website

解釋:

  • docker push: 推送鏡像到鏡像倉庫。
  • your_dockerhub_username/my-static-website: 目標鏡像名稱。

方式二:將鏡像打包成tar包,通過ssh工具上傳到遠程服務器

1.?導出 Docker 鏡像為 tar 文件?

使用 docker save 命令將 Docker 鏡像保存為 tar 文件,tar文件默認保存在當前路徑;

docker save -o my-static-website.tar my-static-website:latest

2. 通過遠程工具(如xftp)工具將鏡像壓縮文件上傳到服務

-------這里根據實際的ftp文件而定;

步驟五:在遠程服務器上獲取并運行 Docker 鏡像——————進入遠程服務器上面操作

方式一:docker鏡像倉庫拉取

1.?在遠程服務器上登錄 Docker Hub 使用以下命令登錄 Docker Hub

sudo docker login

2.?拉取鏡像 運行以下命令從 Docker Hub 拉取鏡像

sudo docker pull your_dockerhub_username/my-static-website

解釋:

  • sudo docker pull: 從鏡像倉庫拉取鏡像。
  • your_dockerhub_username/my-static-website: 要拉取的鏡像名稱。

方式二:手動上傳的鏡像

???????1.?導航到 tar 文件所在目錄,使用 cd 命令進入上傳的 tar 文件所在目錄:

cd /path/to/upload

2.?導入 Docker 鏡像,使用 docker load 命令將 tar 文件導入為 Docker 鏡像:

sudo docker load -i my-static-website.tar

解釋:

  • docker load: 從文件中加載鏡像。
  • -i my-static-website.tar: 指定輸入文件

后續步驟兩種方式都是一樣的操作:

3.?運行容器 運行以下命令啟動容器:

sudo docker run -d -p 80:80 your_dockerhub_username/my-static-website

解釋:

  • sudo docker run: 運行一個新的容器。
  • -d: 后臺運行容器。
  • -p 80:80: 將容器的 80 端口映射到主機的 80 端口。
  • your_dockerhub_username/my-static-website: 要運行的鏡像名稱。

步驟六:通過網址訪問靜態頁面————本地電腦上面操作

1.?確認服務器上的防火墻允許 HTTP 流量 使用以下命令確保服務器允許 HTTP 流量:

sudo ufw allow 80/tcp

2.?訪問你的域名或服務器 IP 地址;在瀏覽器中輸入你的服務器 IP 地址或域名來訪問你的靜態網站。例如:

http://your_server_ip

結語

通過以上步驟,你已經成功地將前端靜態網頁通過 Docker 部署到遠程服務器上,并且可以通過網址訪問該靜態頁面。如果有任何問題,請隨時聯系。

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

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

相關文章

紫外線芯片殺菌燈問題

1.265nm深紫外光子能量是多少 504kj/mol 2.紫外光分解有害物質的原理是什么? 通過紫外光分子鍵打斷有害物質的分子鍵,使其分解成co2和H2o等無害物質 3.紫外光殺菌的原理是什么? 通過特定波長的紫外光照射,破壞和改變微生物的…

【網絡協議】PIM

PIM 1 基本概念 PIM(Protocol Independent Multicast)協議,即協議無關組播協議,是一種組播路由協議,其特點是不依賴于某一特定的單播路由協議,而是可以利用任意單播路由協議建立的單播路由表完成RPF&…

【Python】不小心卸載pip后(手動安裝pip的兩種方式)

文章目錄 方法一:使用get-pip.py腳本方法二:使用easy_install注意事項 不小心卸載pip后:手動安裝pip的兩種方式 在使用Python進行開發時,pip作為Python的包管理工具,是我們安裝和管理Python庫的重要工具。然而&#x…

產品經理技能揭秘:如何巧妙啟發需求,引領市場新潮流

文章目錄 引言一、需求啟發的定義二、需求啟發的藝術三、需求啟發的重要性四、需求啟發的流程五、需求啟發的問題與挑戰內部自身的問題與挑戰:挑戰一:知識的詛咒挑戰二:做與定義的不同挑戰三:溝通障礙挑戰四:需求變更頻…

solidity:構造函數和修飾器、事件

構造函數? 構造函數(constructor)是一種特殊的函數,每個合約可以定義一個,并在部署合約的時候自動運行一次。它可以用來初始化合約的一些參數,例如初始化合約的owner地址: address owner; // 定義owner變…

電腦找回徹底刪除文件?四個實測效果的方法【一鍵找回】

電腦數據刪除了還能恢復嗎?可以的,只要我們及時撤銷上一步刪除操作,還是有幾率找回徹底刪除文件。 當我們的電腦文件被徹底刪除后,盡管恢復的成功率可能受到多種因素的影響,但仍有幾種方法可以嘗試找回這些文件。本文整…

使用 docker buildx 構建跨平臺鏡像

buildx是Docker官方提供的一個構建工具,它可以幫助用戶快速、高效地構建Docker鏡像,并支持多種平臺的構建。使用buildx,用戶可以在單個命令中構建多種架構的鏡像,例如x86和arm架構,而無需手工操作多個構建命令。此外bu…

【React Hooks原理 - useCallback、useMemo】

介紹 在實際項目中,useCallback、useMemo這兩個Hooks想必會很常見,可能我們會處于性能考慮避免組件重復刷新而使用類似useCallback、useMemo來進行緩存。接下來我們會從源碼和使用的角度來聊聊這兩個hooks。【源碼地址】 為什么要有這兩個Hooks 在開始…

使用selenium定位input標簽下的下拉框

先來看一下頁面效果&#xff1a;是一個可輸入的下拉列表 再來看一下下拉框的實現方式&#xff1a; 是用<ul>和<li>方式來實現的下拉框&#xff0c;不是select類型的&#xff0c;所以不能用傳統的select定位方法。 在著手定位元素前一定一定要先弄清楚下拉列表…

前后端的學習框架

前后端的學習框架 視頻鏈接&#xff1a;零基礎AI全棧開發系列教程&#xff08;一&#xff09;_嗶哩嗶哩_bilibili

什么是后端?

1、什么是后端&#xff1f; 后端開發人員從事于構建Web應用程序背后的實際邏輯&#xff0c;負責通過API向前端或者其他系統提供其他需要的信息&#xff0c;如&#xff1a;數據。 實際上&#xff0c;開發web應用中對用戶不可見的部分&#xff0c;稱為web后端&#xff0c;也就是…

初學vue3與ts:獲取組件ref實例

/*** 獲取組件ref* param {VueComponentIns} 組件實例* returns 組件ref*/ // eslint-disable-next-line export function useCompRef<T extends abstract new (...args: any) > any>(_: T) {return ref<InstanceType<T>>(); }使用 <a-com ref"a…

匯凱金業:數字貨幣對經濟的影響有哪些

隨著信息技術的飛速發展&#xff0c;數字貨幣作為一種新興的貨幣形態&#xff0c;正逐步走進人們的視野&#xff0c;并對傳統經濟體系產生著深遠影響。它不僅革新了交易方式&#xff0c;更在重塑金融格局、賦能經濟發展等方面展現出巨大潛力。 一、交易效率的“加速器” 數字…

單例模式之懶漢式

文章目錄 單例模式&#xff08;懶漢式&#xff09;代碼懶漢式&#xff08;線程不安全&#xff09;懶漢式&#xff08;線程安全&#xff0c;加鎖&#xff09;雙重檢查鎖&#xff08;線程安全&#xff0c;推薦&#xff09; 單例模式&#xff08;懶漢式&#xff09; 懶漢式是符合…

xxl-job集成SpringBoot

安裝xxl-job客戶端一般有很多方式&#xff0c;我這里給大家提供兩種安裝方式&#xff0c;包含里面的各項配置等等。 前期需要準備好MySQL數據庫。復制SQL到數據庫里面。 # # XXL-JOB v2.4.2-SNAPSHOT # Copyright (c) 2015-present, xuxueli.CREATE database if NOT EXISTS x…

項目機會:4萬平:智能倉,AGV,穿梭車,AMR,WMS,提升機,機器人……

導語 大家好&#xff0c;我是社長&#xff0c;老K。專注分享智能制造和智能倉儲物流等內容。 如下為近期國內智能倉儲物流相關項目的公開信息線索&#xff0c;這些項目具體信息會發布到知識星球&#xff0c;請感興趣的球友先人一步到知識星球【智能倉儲物流技術研習社】自行下載…

《SoC設計方法與實現》:全面掌握系統芯片設計精髓(可下載)

SoC&#xff08;System on Chip&#xff0c;系統級芯片&#xff09;設計是一項復雜而精細的工程活動&#xff0c;它涉及到將一個完整的電子系統的所有組件集成到一個單一的芯片上&#xff0c;包括處理器核心、內存、輸入/輸出端口以及可能的其他功能模塊。這種集成不僅要求設計…

oracle存儲結構-----邏輯存儲結構(表空間、段、區、塊)

文章目錄 oracle存儲結構圖&#xff08;邏輯存儲物理存儲&#xff09;oracle邏輯存儲結構圖邏輯存儲結構、表空間、段、區、數據塊的關系&#xff1a;1、數據 塊&#xff08;block&#xff09;---邏輯存儲最小單位2、 數據區&#xff08;extent&#xff09;--存儲空間分配和回收…

【AutoencoderKL】基于stable-diffusion-v1.4的vae對圖像重構

模型地址&#xff1a;https://huggingface.co/CompVis/stable-diffusion-v1-4/tree/main/vae 主要參考:Using-Stable-Diffusion-VAE-to-encode-satellite-images sd1.4 vae 下載到本地 from diffusers import AutoencoderKL from PIL import Image import torch import to…

電腦經常黑屏

情況簡述&#xff1a; 電腦經常突然黑屏&#xff0c;并且鼠標還能看到并且可操控 你是不是試過以下方法&#xff1a; 更換顯卡驅動版本?重置BIOS?重裝系統?全網找千篇一律沒啥用的教程? 這個標志熟悉吧&#xff0c;看看你的電腦里是否安裝了火絨&#xff0c;如果裝了繼續…