最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker搭建Nginx服務(wù)器的實現(xiàn)步驟

 更新時間:2025年05月21日 09:45:02   作者:代碼怪獸大作戰(zhàn)  
本文主要介紹了Docker搭建Nginx服務(wù)器的實現(xiàn),包括配置目錄、掛載文件、修改配置及端口設(shè)置,實現(xiàn)快速搭建并靈活管理Nginx服務(wù),感興趣的可以了解一下

前言

在現(xiàn)代 Web 開發(fā)中,Nginx 是一個廣泛使用的高性能 Web 服務(wù)器,它不僅可以用于反向代理,還能作為負載均衡器、HTTP 緩存等。通過 Docker 部署 Nginx,不僅能夠簡化安裝過程,還能輕松進行配置和管理。

本篇文章將指導(dǎo)你通過 Docker 快速搭建一個 Nginx 環(huán)境,并講解如何修改配置文件以定制化你的服務(wù)器設(shè)置。

一、準備工作

首先,確保你的系統(tǒng)上已經(jīng)安裝了 Docker。

Linux上進行Docker安裝有兩種方式:

  • Docker自動化安裝
  • Docker手動安裝

可以根據(jù)該文章的步驟進行安裝:http://m.fzitv.net/server/339879ek2.htm

二、設(shè)置 Nginx 容器的目錄結(jié)構(gòu)

為了便于管理,我們首先創(chuàng)建一個目錄結(jié)構(gòu),用于存放 Nginx 配置文件、日志文件和 HTML 文件。

# 安裝路徑
DIR="/opt/docker/demo"
DOCKER_NAME="docker-nginx"

# 創(chuàng)建目錄結(jié)構(gòu)
mkdir -p "$DIR/nginx/conf"
mkdir -p "$DIR/nginx/log"
mkdir -p "$DIR/nginx/html"
  • conf:存放 Nginx 的主配置文件和自定義配置文件。
  • log:存放 Nginx 的日志文件。
  • html:存放靜態(tài)網(wǎng)站文件。

三、啟動一個臨時的 Nginx 容器來復(fù)制配置文件

我們需要一個基礎(chǔ)的 Nginx 配置文件,Docker 官方鏡像已經(jīng)內(nèi)置了標準配置文件。為了方便地獲取并修改這些配置文件,我們首先啟動一個臨時的 Nginx 容器。

# 啟動一個臨時的 nginx 容器來復(fù)制配置文件
docker run --name nginx_test -p 9011:80 -d nginx:stable-alpine

這個命令會啟動一個 nginx:stable-alpine 容器,并將其 80 端口映射到宿主機的 9011 端口。我們可以通過訪問 http://localhost:9011 來查看默認的 Nginx 歡迎頁面。

四、復(fù)制 Nginx 配置文件到本地目錄

接下來,我們將容器內(nèi)的 Nginx 配置文件復(fù)制到本地,以便進行自定義修改。使用以下命令將 nginx.conf 文件和 conf.d 配置目錄復(fù)制到宿主機的 $DIR/nginx/conf 目錄中:

# 復(fù)制 nginx 配置文件到本地目錄
docker cp nginx_test:/etc/nginx/nginx.conf "$DIR/nginx/conf/nginx.conf"
docker cp nginx_test:/etc/nginx/conf.d "$DIR/nginx/conf/conf.d"

這樣,我們就獲取到了 Nginx 的配置文件,并且可以根據(jù)需要進行修改。

五、刪除臨時 Nginx 容器

復(fù)制完配置文件后,我們不再需要這個臨時的 Nginx 容器,因此可以將其刪除:

# 刪除臨時 nginx 容器
docker rm -f nginx_test

六、創(chuàng)建并運行 Nginx 容器,掛載本地目錄

現(xiàn)在,我們可以使用自己的配置文件來啟動一個持久化的 Nginx 容器。通過將本地目錄掛載到容器中,我們可以確保配置文件、日志和網(wǎng)站文件持久化存儲在宿主機上。

以下是啟動 Nginx 容器的命令:

docker run -d \
  --restart=always \
  --name "$DOCKER_NAME" \
  --network host \
  -v "$DIR/nginx/conf/nginx.conf:/etc/nginx/nginx.conf" \
  -v "$DIR/nginx/conf/conf.d:/etc/nginx/conf.d" \
  -v "$DIR/nginx/log:/var/log/nginx" \
  -v "$DIR/nginx/html:/opt/html" \
  nginx:stable-alpine

解釋各個參數(shù):

  • -d:后臺運行容器。
  • --restart=always:容器在崩潰或系統(tǒng)重啟后自動重啟。
  • --name "$DOCKER_NAME":容器的名稱為 docker-nginx。
  • --network host:容器將使用宿主機的網(wǎng)絡(luò)棧。
  • -v "$DIR/nginx/conf/nginx.conf:/etc/nginx/nginx.conf":掛載自定義的 nginx.conf 配置文件到容器中。
  • -v "$DIR/nginx/conf/conf.d:/etc/nginx/conf.d":掛載自定義的配置目錄。
  • -v "$DIR/nginx/log:/var/log/nginx":掛載日志目錄,便于查看和管理日志。
  • -v "$DIR/nginx/html:/opt/html":掛載網(wǎng)站文件目錄,用于存放靜態(tài)網(wǎng)頁。

七、修改 nginx.conf 文件配置監(jiān)聽端口

如果你希望更改 Nginx 的默認端口,可以在修改的 nginx.conf 文件中進行配置。在 nginx.conf 中,你可以找到以下內(nèi)容:

server {
    listen 80;
    server_name localhost;
    client_max_body_size 100m;

    access_log /var/log/nginx/access.log main;
    error_log /var/log/nginx/error.log notice;
    
    #測試
    location /demo/testme {
        default_type text/html;
        return 200 "demo success 80!";
    }

     #首頁靜態(tài)資源
     location /demo {

            autoindex off; # 禁止目錄索引
            server_tokens off; # 在http{}塊中隱藏服務(wù)器版本號

            client_max_body_size 100m;
            alias /opt/html/dist;
            index index.html index.htm;

            try_files $uri $uri/ /demo/index.html;  #front為路由 而不是目錄
    }
}

將 listen 80; 改為你需要的端口(例如 listen 8080;)。這樣,Nginx 就會監(jiān)聽新的端口。

八、端口配置:Host 網(wǎng)絡(luò)模式 vs Port 映射模式

在 Docker 中,容器的端口配置是非常關(guān)鍵的。Nginx 容器支持兩種主要的端口配置方式:Host 網(wǎng)絡(luò)模式 和 Port 映射模式

  • Host 網(wǎng)絡(luò)模式

    在 Docker 中使用 --network host 時,容器將共享宿主機的網(wǎng)絡(luò)棧,這意味著容器直接使用宿主機的 IP 地址和端口來暴露服務(wù)。通過這種方式,容器會使用宿主機的端口 80 來提供服務(wù)。

    配置命令:

    docker run -d \
      --restart=always \
      --name "$DOCKER_NAME" \
      --network host \
      -v "$DIR/nginx/conf/nginx.conf:/etc/nginx/nginx.conf" \
      -v "$DIR/nginx/conf/conf.d:/etc/nginx/conf.d" \
      -v "$DIR/nginx/log:/var/log/nginx" \
      -v "$DIR/nginx/html:/opt/html" \
      nginx:stable-alpine
    
    • 優(yōu)點
      • 容器共享宿主機的網(wǎng)絡(luò),性能較高。
      • 無需顯式端口映射,容器與宿主機共享相同的網(wǎng)絡(luò)。
    • 缺點
      • 容器與宿主機的網(wǎng)絡(luò)完全共享,可能會有端口沖突,尤其是多個容器或服務(wù)同時運行時。
      • 容器的端口與宿主機端口相同,可能存在安全隱患。
  • Port 映射模式

    如果你希望使用宿主機的特定端口來訪問容器內(nèi)的服務(wù),可以使用 -p 參數(shù)進行端口映射。通過這種方式,容器內(nèi)部的端口(例如 80)將映射到宿主機的另一個端口(例如 8080)。

    配置命令:

    docker run -d \
     --restart=always \
     --name "$DOCKER_NAME" \
     -p 8080:80 \
     -v "$DIR/nginx/conf/nginx.conf:/etc/nginx/nginx.conf" \
     -v "$DIR/nginx/conf/conf.d:/etc/nginx/conf.d" \
     -v "$DIR/nginx/log:/var/log/nginx" \
     -v "$DIR/nginx/html:/opt/html" \
     nginx:stable-alpine
    

    在這個配置中:
    -p 8080:80:將宿主機的 8080 端口映射到容器的 80 端口。你可以通過宿主機的 http://localhost:8080 訪問 Nginx 服務(wù)。

    • 優(yōu)點
      • 容器端口與宿主機端口不同,可以避免端口沖突。
      • 容器與宿主機之間有更好的網(wǎng)絡(luò)隔離性。
      • 支持多個容器映射到宿主機不同的端口,適合多容器環(huán)境。
    • 缺點
      • 可能會導(dǎo)致稍微的性能損失,因為需要進行額外的端口映射。
      • 需要手動管理和指定端口映射。

九、查看日志和檢查容器狀態(tài)

容器啟動后,你可以通過以下命令查看容器的狀態(tài),確保它在運行中:

docker ps

如果容器未正常運行,可以查看日志進行排查:

docker logs docker-nginx

查看 Nginx 的訪問日志和錯誤日志也可以幫助你調(diào)試網(wǎng)站:

tail -f "$DIR/nginx/log/access.log"
tail -f "$DIR/nginx/log/error.log"

十、訪問 Nginx 服務(wù)

完成上述步驟后,你可以通過瀏覽器訪問宿主機的 IP 地址和配置的端口,查看 Nginx 是否正常運行。

  • 如果使用了 --network host,則可以通過 http://localhost 或宿主機的 IP 地址訪問服務(wù)。
  • 如果使用了端口映射,例如 -p 8080:80,則可以通過 http://localhost:8080 訪問 Nginx 歡迎頁面。

在這里插入圖片描述

總結(jié)

通過 Docker 部署 Nginx 容器非常簡便,并且可以靈活配置各個參數(shù)。通過掛載本地目錄,Nginx 的配置文件、日志和網(wǎng)站文件可以持久化存儲在宿主機上,便于管理和備份。使用 Docker 來運行 Nginx 容器不僅簡化了部署流程,還提供了極大的靈活性和可擴展性。

到此這篇關(guān)于Docker搭建Nginx服務(wù)器的實現(xiàn)步驟的文章就介紹到這了,更多相關(guān)Docker搭建Nginx服務(wù)器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • dockerfile發(fā)布springboot項目實踐

    dockerfile發(fā)布springboot項目實踐

    使用Docker的其中一個目的,是為了更加簡單,方便的部署我們編寫的服務(wù),本文主要介紹了dockerfile發(fā)布springboot項目實踐,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • Docker 命令使用說明及常用組合命令示例

    Docker 命令使用說明及常用組合命令示例

    文章提供了Docker命令的使用說明,涉及容器生命周期管理、容器操作、容器信息查看、容器與主機間的數(shù)據(jù)操作、鏡像相關(guān)命令、網(wǎng)絡(luò)相關(guān)命令以及數(shù)據(jù)卷和系統(tǒng)相關(guān)命令,本文給大家介紹的很詳細,需要的朋友跟隨小編一起看看吧
    2025-10-10
  • Docker?Compose+Nginx+Certbot自動化部署HTTPS的詳細指南

    Docker?Compose+Nginx+Certbot自動化部署HTTPS的詳細指南

    打造屬于您的全自動?HTTPS?服務(wù),無需復(fù)雜配置,無需手動維護,只需?3?個核心文件和?5?分鐘時間,即可實現(xiàn)永久自動化的?HTTPS?加密解決方案,下面我們就來看看具體方法吧
    2025-07-07
  • Docker版FFmpeg安裝部署的詳細步驟

    Docker版FFmpeg安裝部署的詳細步驟

    項目組開發(fā)過程用因為要使用音頻格式轉(zhuǎn)換功能,FFmpeg是常見的音視頻處理工具,本文就來介紹一下Docker版FFmpeg安裝部署的詳細步驟,感興趣的可以了解一下
    2023-10-10
  • 使用Dockerfile構(gòu)建docker鏡像

    使用Dockerfile構(gòu)建docker鏡像

    這篇文章主要介紹了使用Dockerfile構(gòu)建docker鏡像的方法,幫助大家更好的理解和學(xué)習(xí)使用docker,感興趣的朋友可以了解下
    2021-04-04
  • docker-entrypoint.sh文件的用處詳解

    docker-entrypoint.sh文件的用處詳解

    這篇文章主要介紹了docker-entrypoint.sh文件的用處,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • linux下如何使用docker安裝minio

    linux下如何使用docker安裝minio

    這篇文章主要介紹了linux下如何使用docker安裝minio問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • docker部署Prometheus+Cadvisor+Grafana實現(xiàn)服務(wù)器監(jiān)控

    docker部署Prometheus+Cadvisor+Grafana實現(xiàn)服務(wù)器監(jiān)控

    這篇文章主要為大家介紹了docker部署Prometheus+Cadvisor+Grafana實現(xiàn)服務(wù)器監(jiān)控,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • Docker中Mysql容器無法停止無法刪除問題

    Docker中Mysql容器無法停止無法刪除問題

    這篇文章主要介紹了Docker中Mysql容器無法停止無法刪除問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 基于docker部署Oracle?19c的詳細記錄

    基于docker部署Oracle?19c的詳細記錄

    這篇文章主要介紹了基于docker部署Oracle?19c,包括拉取oracle?19c鏡像、查看鏡像及創(chuàng)建oracle?19c鏡像的容器問題,結(jié)合示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04

最新評論

娄烦县| 潼南县| 新竹县| 离岛区| 罗山县| 济阳县| 乐山市| 临潭县| 得荣县| 柘荣县| 石棉县| 汨罗市| 双流县| 双桥区| 邻水| 甘德县| 屏边| 原平市| 万荣县| 渭南市| 麻阳| 靖安县| 剑河县| 英山县| 措勤县| 漳平市| 固始县| 包头市| 积石山| 响水县| 宁化县| 广昌县| 无极县| 临湘市| 沽源县| 祁阳县| 鹤岗市| 新泰市| 平罗县| 江源县| 嘉黎县|