【Nginx】docker運行Nginx及配置

Nginx鏡像的獲取

  1. 直接從Docker Hub拉取Nginx鏡像
  2. 通過Dockerfile構建Nginx鏡像后拉取

二者區別

主要區別在于定制化程度和構建過程的控制:

  1. 直接拉取Nginx鏡像:

    • 簡便性:直接使用docker pull nginx命令可以快速拉取官方的Nginx鏡像。這個過程非常簡單,適合快速部署標準的Nginx服務。
    • 標準化:拉取的是Nginx官方維護的鏡像,保證了環境的一致性和可靠性。這個鏡像經過了官方的優化和安全更新。
    • 限制:官方鏡像提供了Nginx的標準安裝,可能不包含特定的模塊或配置。如果需要特殊配置或額外的模塊,可能需要在容器啟動后手動進行調整。
  2. 通過Dockerfile構建Nginx鏡像:

    • 定制化:通過編寫Dockerfile,可以在構建過程中定制Nginx的安裝,包括添加特定的模塊、配置文件、環境變量等。這為滿足特定需求提供了靈活性。
    • 自動化:構建過程可以自動化執行,包括從基礎鏡像安裝Nginx、應用配置文件、復制網站內容等。這使得整個部署過程可重復、可追蹤。
    • 維護:如果需要更新配置或添加功能,可以直接修改Dockerfile和相關文件,然后重新構建鏡像。這簡化了更新和維護過程。
    • 構建時間:根據Dockerfile的復雜度,構建鏡像可能需要一些時間。對于頻繁的構建和測試,這可能會稍微增加開發周期。

總結,直接拉取Nginx鏡像適合快速部署和標準使用場景,而通過Dockerfile構建Nginx鏡像適合需要特定配置、模塊或自動化部署流程的場景。選擇哪種方式取決于項目的具體需求和開發流程。

Nginx關鍵目錄

  1. 配置目錄 (/etc/nginx/): 存放Nginx的主配置文件nginx.conf以及其他配置文件。這個目錄通常包括:
    • nginx.conf:主配置文件
    • sites-available/:存放每個站點的配置文件,這些文件需要被鏈接到sites-enabled/才能被Nginx讀取。
    • sites-enabled/:存放鏈接到sites-available/中站點配置文件的符號鏈接,Nginx會讀取這里的配置來啟動網站。
    • conf.d/:用于存放其他額外的配置文件,Nginx會自動加載這個目錄下的配置文件。
      - default.conf : 默認服務器配置文件
      - *.conf:額外的配置文件
  2. 日志目錄 (/var/log/nginx/): 存放訪問日志和錯誤日志。
    • access.log:默認的訪問日志文件,記錄所有請求的詳細信息。
    • error.log:默認的錯誤日志文件,記錄啟動、運行錯誤以及請求處理的問題。
  3. 網站內容目錄 (/usr/share/nginx/html): 默認的網站根目錄,存放網站的靜態文件,如HTML、CSS、JavaScript等。
  4. 可執行文件目錄 (/usr/sbin/nginx): 存放Nginx的可執行文件。
  5. 客戶端臨時文件目錄 (/var/cache/nginx/): 存放客戶端請求的臨時文件,比如用于緩存的文件。
  6. SSL證書目錄: 存放SSL證書和私鑰的目錄,通常這個目錄不是固定的,需要在Nginx的SSL配置中指定證書和私鑰文件的路徑。

直接從Docker Hub拉取Nginx鏡像

  1. 拉取最新的Nginx官方鏡像:
docker pull nginx
  1. 如果你想要拉取特定版本的Nginx鏡像,可以通過指定標簽來完成。例如,要拉取Nginx 1.19版本的鏡像,可以使用:
docker pull nginx:1.19
  1. 查看已下載的鏡像
docker images
  1. 配置Nginx
    通常所有配置都應該通過Docker卷(volumes)或綁定掛載(bind mounts)來管理,以便于配置的持久化和更新。
    所以先在宿主機上創建配置文件 ,再將其掛載到nginx
  • /home/nginx/nginx.conf
worker_processes        1;  # 工作進程數量,通常設置為CPU核心數events {worker_connections      1024; # 每個工作進程的最大連接數
}http {include         /etc/nginx/mime.types;  # 包含MIME類型定義default_type    application/octet-stream;  # 默認文件類型sendfile        on; # 啟用高效文件傳輸模式keepalive_timeout       65; # 保持連接的超時時間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; # 錯誤頁面的根目錄 }}
}
  • /home/nginx/html/index.html
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline' 'unsafe-eval';" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>my nginx test</title></head><body><div>hello nginx html</div><h1>edit html</h1></body></html>
  1. 運行Nginx
docker run --name my-nginx-test3  -p 80:80 -v /home/nginx/nginx.conf:/etc/nginx/nginx.conf     -v /home/nginx/html:/usr/share/nginx/html  -d nginx

運行容器:docker run
–name: 為容器指定一個唯一的名稱,可以通過名稱來引用容器,而不是使用容器的ID
-p:映射端口,[宿主機端口(訪問端口)]:[nginx容器內端口]
-v :綁定掛載配置 [宿主機路徑]:[容器內路徑]
-d:后臺運行,返回運行成功的鏡像id

  1. 查看運行的容器
docker ps

在這里插入圖片描述

  1. 運行后修改配置文件重啟生效
  • 重載Nginx配置:
docker exec <容器name> nginx -s reload
  • 重啟Nginx容器:
docker restart nginx
  1. 瀏覽器輸入ip:端口
    在這里插入圖片描述

通過Dockerfile構建Nginx鏡像后拉取

注意執行上下文路徑

  1. 創建Dockerfile:創建一個Dockerfile來構建您的Nginx鏡像。
# 使用Nginx官方鏡像作為基礎鏡像
FROM nginx:alpine# 將dist目錄(包含index.html和其他靜態文件)復制到Nginx容器的靜態文件目錄
# ./dist相對執行構建上下文的路徑
COPY ./dist/ /usr/share/nginx/html/# 將自定義的Nginx配置文件復制到Nginx容器(此步驟將修改nginx完整的主配置文件)
COPY nginx/nginx.conf /etc/nginx/nginx.conf
  1. 準備Nginx配置文件(nginx.conf):創建一個Nginx配置文件來定義如何服務您的靜態文件。
    同上面的 /home/nginx/nginx.conf 文件
  2. 準備dist/index.html文件
	<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline' 'unsafe-eval';" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>dockerfile nginx test</title></head><body><div>hello use dockerfile nginx html</div></body></html>
  1. 構建和運行Docker容器:使用Dockerfile和Nginx配置文件構建Docker鏡像,并運行容器。
  • 構建Docker鏡像

    docker build -t my-dockerfile-nginx -f Dockerfile .
    

    -t: 選項用于指定鏡像的名稱和標簽
    . :最后的點號表示當前目錄是構建上下文
    -f:指定dockerfile所在位置,若在當前執行目錄可不用指定

  • 運行Docker容器,開放9999端口訪問

    docker run --name dockerfile-nginx -p 9999:80 -d my-dockerfile-nginx
    
  1. 瀏覽器輸入ip:端口
    在這里插入圖片描述

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

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

相關文章

通透!手把教你如何從頭構建一個機器學習模型

目錄 1.業務理解 2.數據收集和準備 數據采集 探索性數據分析 (EDA) 和數據清理 特征選擇 3.建立機器學習模型 選擇正確的模型 分割數據 訓練模型 模型評估 4.模型優化 5.部署模型 今天我將帶領大家一步步的來構建一個機器學習模型。 我們將按照以下步驟開發客戶流失…

賽博解壓板

目錄 開頭程序程序的流程圖程序的解壓效果(暫無&#xff0c;但可以運行一下上面的代碼)結尾 開頭 大家好&#xff0c;我叫這是我58。今天&#xff0c;我們要看關于賽博解壓板的一些東西。 程序 #define _CRT_SECURE_NO_WARNINGS 1 #define ROW 6//ROW表示行數&#xff0c;可…

【ARM 常見匯編指令學習 7.1 -- LDRH 半字讀取指令】

請閱讀【嵌入式開發學習必備專欄】 文章目錄 LDRH 使用介紹LDRH&#xff08;Load Register Half-word&#xff09;總結 LDRH 使用介紹 在ARMv9架構中&#xff0c;匯編指令LDRH用于從內存中載入數據到寄存器的指令&#xff0c;下面將分別對它進行詳細介紹&#xff1a; LDRH&am…

【基礎算法】UE中實現輪播

本期作者&#xff1a;尼克 易知微3D引擎技術負責人 當前N 總數M 從0到M-1 從1到M 感謝閱讀&#xff0c;以上內容均由易知微3D引擎團隊原創設計&#xff0c;以及易知微版權所有&#xff0c;轉載請注明出處&#xff0c;違者必究&#xff0c;謝謝您的合作。申請轉載授權后臺回復【…

【WebKit屏幕方向API全解析】掌握現代Web應用的方向感應

標題&#xff1a;【WebKit屏幕方向API全解析】掌握現代Web應用的方向感應 WebKit作為許多現代瀏覽器的內核&#xff0c;提供了對HTML5和CSS3的廣泛支持&#xff0c;包括對屏幕方向的控制。屏幕方向API&#xff08;Screen Orientation API&#xff09;允許Web應用知道屏幕的方向…

左耳聽風_114_113_Go編程模式修飾器

你好&#xff0c;我是陳浩&#xff0c;我名多爾多house.之前呢我寫過一篇文章叫做python修飾器的函數式編程。 那這種模式呢可以很輕松的把一些函數啊裝配到另外一些函數上。 讓你的代碼呢更加簡單&#xff0c;也可以讓一些小功能性的代碼復用性更高。 讓代碼中的函數呢可以…

掌握XD數字設計:打造令人驚艷的用戶體驗

xd是adobe旗下一款主打UI界面設計-建立原型的軟件&#xff0c;它可以將wireframe、design、以及prototype等UI/UX設計流程整合到一個軟件中&#xff0c;算是一款與sketch對打的軟件。 與PS相比&#xff0c;在UI設計方面&#xff0c;Adobe XD有非常突出的3個優點&#xff1a;能…

從0到1手寫vue源碼

模版引擎 數組join法&#xff08;字符串&#xff09; es6反引號法&#xff08;模版字符串換行&#xff09; mustache (小胡子) 引入mustache 模版引擎的使用 mustache.render(templatestr,data) mustache.render 循環簡單數組 循環復雜數組 循環單項數組 數組的嵌套 musta…

江蘇徐州SAP代理商有哪些?怎么選擇?

在數字化浪潮席卷全球的今天&#xff0c;企業對于高效、智能的管理系統需求日益迫切。SAP作為全球領先的企業管理軟件解決方案提供商&#xff0c;其產品在市場上享有極高的聲譽。而在江蘇徐州&#xff0c;哲訊智能科技作為SAP的代理商&#xff0c;以其專業的技術實力和優質的服…

開源205W桌面充電器,140W+65W升降壓PD3.1快充模塊(2C+1A口),IP6557+IP6538

開源一個基于IP6557和IP6538芯片的205W升降壓快充模塊&#xff08;140W65W&#xff09;&#xff0c;其中一路C口支持PD3.1協議&#xff0c;最高輸出28V5A&#xff0c;另一路是A口C口&#xff0c;最高輸出65W&#xff08;20V3.25A&#xff09;&#xff0c;可搭配一個24V10A的開關…

代碼隨想錄算法訓練營第3天|LeetCode

203.移除鏈表元素 題目鏈接&#xff1a;203. 移除鏈表元素 - 力扣&#xff08;LeetCode&#xff09; 文檔鏈接&#xff1a;代碼隨想錄 (programmercarl.com) 視頻鏈接&#xff1a;手把手帶你學會操作鏈表 | LeetCode&#xff1a;203.移除鏈表元素_嗶哩嗶哩_bilibili 第一想法 …

SpringBoot-第一天學習

SpringBoot介紹-約定大于配置 SpringBoot是在Spring4.0基礎上開發的&#xff0c;不是替代Spring的解決方案&#xff0c;而是和Spring框架結合并進一步簡化Spring搭建和開發過程的。 如何簡化&#xff1f;就是通過提供默認配置等方式讓我們更容易&#xff0c;集成了大量常用的…

交叉測試的優點和缺點!

交叉測試在軟件測試中具有重要的地位和作用。通過交叉測試&#xff0c;可以提高軟件質量、提升用戶體驗、增加測試覆蓋率、提高測試效率以及滿足市場需求和競爭優勢。因此&#xff0c;在軟件開發和測試過程中&#xff0c;應充分重視交叉測試的實施和應用。 以下是對其優缺點的…

推薦3款Windows系統的神級軟件,免費、輕量、絕對好用!

DiskView DiskView是一款用于管理和查看磁盤空間的工具&#xff0c;它集成了于微軟的Windows操作系統資源管理器中&#xff0c;以顯示直觀的磁盤空間使用情況。該軟件通過生成圖形化地圖&#xff0c;幫助用戶組織和管理大量文件和文件夾&#xff0c;從而高效地管理磁盤空間。用…

JDBC 學習筆記+代碼整理

Tip Idea自帶可視界面&#x1f449;MySQL 圖形化界面-CSDN博客 Idea2022無add Framework support選項&#x1f449;最新版IDEA:Add web Framework Support步驟/構建JavaWeb項目步驟_idea add framework support-CSDN博客 基本步驟 1.加載驅動包Driver 2.建立與數據庫的連接C…

證券交易系統中服務器監控系統功能設計

1.背景介紹 此服務器監控系統的目的在于提高行情服務器的監管效率&#xff0c;因目前的的行情服務器&#xff0c;包括DM、DT、DS配置數量較多&#xff0c;巡回維護耗時較多&#xff0c;當行情服務器出現異常故障&#xff0c;或者因為網絡問題造成數據斷線等情況時&#xff0c;監…

芯科普| 矽光子是什麼?可以用在哪些領域?點擊查看!

隨著生成式人工智能的崛起&#xff0c;數據傳輸需求亦呈現爆發式增長。而在此背景下&#xff0c;臺積電在半導體展覽上披露的硅光子&#xff08;SiPh&#xff1a;Silicon Photonics&#xff09;技術進展&#xff0c;更是將硅光子推向了風口浪尖&#xff0c;成為了市場的寵兒。 …

IDEA導入依賴+Maven配置

Maven安裝及配置 安裝 安裝鏈接&#xff1a;https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/ 注&#xff1a;建議不要直接安裝最新版本&#xff0c;選用常用、穩定的版本安裝即可&#xff0c;比如&#xff1a;3.6.3 配置 1> 配置bash_profile文件 終端輸…

《知識點掃盲 · 監聽器 Listener》

&#x1f4e2; 大家好&#xff0c;我是 【戰神劉玉棟】&#xff0c;有10多年的研發經驗&#xff0c;致力于前后端技術棧的知識沉淀和傳播。 &#x1f497; &#x1f33b; CSDN入駐不久&#xff0c;希望大家多多支持&#xff0c;后續會繼續提升文章質量&#xff0c;絕不濫竽充數…

高效前端開發:解密pnpm的存儲與鏈接

什么是pnpm PNPM&#xff08;Performant NPM&#xff09;是一種快速且節省磁盤空間的包管理工具。相較于其他包管理器如NPM和Yarn&#xff0c;PNPM通過獨特的存儲機制和鏈接技術解決了許多常見的問題。以下是PNPM如何避免這些問題以及其關鍵技術的詳細介紹。 特性 PNPM Store…