當前位置:首頁 » 編程軟體 » docker編譯nginx

docker編譯nginx

發布時間: 2023-06-20 03:00:00

Ⅰ Docker 入門 (07) 部署nginx 並且映射本地配置文件

目標:

1. 利用docker部署一個nginx容器

2.為nginx 容器設置配置文件 , 並且映射到宿主機(本機)

操作步驟:

1.拉取nginx鏡像,並嘗試簡單運行(忘記怎麼操作請參考第五節)

2.在本地新增配置文件 , 為了後面映射容器使用 ,我習慣是放到 /etc/docker/nginx-config , 按你個人運頃習慣新增

3.進入config ,我們需要創建一個簡單配置文件 , 這里就來個簡單的吧

4.因為我稍後需要佔用的是8080埠 , 請確認雲伺服器端是否開放

5. 萬事俱備 , 嘗試啟動吧

6. 使用你的 伺服器ip+8080埠訪問測試 , 看到您的寫的 index,html 內容, 代表啟動成功!

7.具體映射位置 可以 使用 docker exec -it [容野叢器ID] /bin/bash 命令去參考對應映射文件 ,原理就應該明白了

結語:

通過本節的 nginx 映射本地配置文件 , 應旁脊陸該掌握對docker映射文件的基本使用了 , 希望大家都把自己的nginx跑起來吧

Ⅱ Docker中使用Nginx部署多應用

最近打算將系統中的應用全部用docker進行部署,能夠進行統一管理。
花費時間最多的問題是:

這兩種方式各有優勢各有痛點:

我最終還是選擇使用一個nginx容器代理所有應用,因為如果多個域名不能都使用80,443埠訪問確實很難受。
這篇文章包含了docker中很多元素,如果用的不對,也希望大家斧正。

步驟如下:

我之前已經准備好了兩個簡單的應用鏡像,訪問返回靜態頁面,啟動兩個應用。

創建一個appbridge用於容器之間的通信。

數據卷可以映射宿主機和容器中的目錄,可以方便配置,修改內容和數據持久化。也可以在運行容器 -v 參數自動創建數據卷,這里為了清晰就單獨拎出來。

test2應用相同方式創建。

因為需要配置https,先用certbot為域名生成證書和密鑰(步驟省略),拷貝證書和密鑰到數據卷ssl-certs-vol中。

修改nginx-vol數據卷中的nginx.conf文件,能夠映射到nginx容器的配置。

添加伺服器配置,這里配置了相同域名的三個埠的反向代理應用,應用地址可使用別名。

進入nginx容器,重新啟動nginx

瀏覽器訪問

Ⅲ Docker 搭建 Nginx 集群

實現負載均衡其實並不難、只是很多人不敢去嘗試而已,簡單來說就是:

在nginx裡面配置一個upstream,然後把相關的伺服器ip都配置進去。然後採用輪詢的方案,然後在nginx裡面的配置項里,proxy-pass指向這個upstream,這樣就能實現負載均衡.

nginx的負載均衡有4種模式:

1)、輪詢(默認)

    每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。

2)、weight

    指定輪詢幾率,weight和訪問比率成正比,用於後端伺服器性能不均的情況。

3)、ip_hash

    每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個後端伺服器,可以解決session的問題。

4)、fair , url_hash(第三方)

    按後端伺服器的響應時間來分配請求,響應時間短的優先分配。

    docker pull nginx ( docker pull cloud.io/nginx 這個稍微快點 )

    docker run -itd --name nginx1 -p 8080:80 nginx /bin/bash -- 主

    docker run -itd --name nginx2 nginx /bin/bash

    docker run -itd --name nginx3 nginx /bin/bash

    docker ps 查看

       docker network ls

docker nerwork inspect d530da7ebbd3

       進入nginx1 (主)

            docker exec -it d530da7ebbd3 /bin/bash   

            安裝 vim 編輯器 (如有其他、盡可隨意)   ---  注意:nginx2、nginx3 均安裝 編輯器、下文不再贅述

                        1.  apt update   2.  apt install vim 

            cd /etc/nginx/

            vim nginx.conf

    進入nginx2

                docker exec -it e59de010efff /bin/bash

                    cd /usr/share/nginx/html/

                    vim index.html

                            Welcome to nginx! 後添加: From 172.17.0.3:80 即可

            進入nginx3

                docker exec -it 0f12240cb622 /bin/bash

                    cd /usr/share/nginx/html/

                    vim index.html

                            Welcome to nginx! 後添加: From 172.17.0.4:80 即可

重啟三個nginx服務   service nginx restart

此時如果 docker容器會關閉、因此需要再次重啟

        docker start d530da7ebbd3

        docker start e59de010efff

        docker start 0f12240cb622

測試結果

補充:

    上述說到 負載均衡有4種模式、

配置分別如下:

輪詢模式:

    upstream webname {

        server192.168.0.1:8080;

        server192.168.0.2:8080;

  }

weight 模式:

    upstream webname {

        server192.168.0.1:8080 weight=2;

        server192.168.0.2:8080 weight=1;

  }

ip_hash模式:

 upstream webname {

    ip_hash;

    server192.168.0.1:8080;

    server192.168.0.2:8080;

  }

其他配置:

設置某一個節點為backup,那麼一般情況下所有請求都訪問server1,當server1掛掉或者忙的的時候才會訪問server2

upstream webname {

    server192.168.0.1:8080;

    server192.168.0.2:8080 backup;

  }

設置某個節點為down,那麼這個server不參與負載。

upstream webname {

    server192.168.0.1:8080;

    server192.168.0.2:8080 down;

  }

Ⅳ 基於 Docker 安裝 Nginx,啟動運行,外網訪問,映射配置文件

基於 Docker 安裝 Nginx
查找Nginx鏡像
語法:docker search nginx
示例:

獲取Nginx鏡像

示例:

啟動nginx容器實例

說明:--name nginx nginx 第一個nginx是通過--name指定的nginx容器實例的名稱,另一個nginx表示nginx倉庫的名稱。

查看nginx容器實例的進程信息

通過ps -ef | grep nginx查看

進入nginx容器內

殺死nginx容器實例

停止nginx實例

啟動nginx容器實例

重啟nginx容器實例

移除nginx容器實例

案例
暴露外部埠
基於docker run -d --name nginx nginx方法啟動nginx後,Docker 容器並沒有對外暴露訪問的埠,即無法通過當前主機外部瀏覽器器訪問nginx。那麼該怎麼樣呢?

語法:

-p 80:80:通過-p來指定Docker容器中nginx實例對外開放的埠。本例中,第一個80埠是對外開放的埠,第二個80埠指對外開放的埠映射到容器里的埠號。

示例:

通過當前主機外的瀏覽器訪問nginx,如下圖:

指定外部的配置文件
語法:

說明:
-v: 表示掛載一個本機目錄或文件到容器里。
-v /develop/nginx/nginx.conf:/etc/nginx/nginx.conf:將/develop/nginx/nginx.conf配置文件掛載到容器中/etc/nginx/nginx.conf這個配置文件中。
-v /develop:/develop:將/develop這個目錄掛載到容器里的/develop這個目錄里。

示例:

注意事項:指定外部配置文件,同時需要指定nginx的首頁面,否則會拋出404錯誤,原因就是因為nginx找不到配置文件中默認的index頁面。
本例中,使用/develop/apps/static/index.html替代了容器里的nginx默認的index頁面,同時,-v /develop:/develop掛載根目錄即可訪問子目錄。

指定網路模式:--net=bridge 默認模式

其中8080是指主機的埠,而80是指容器的埠
我們先看一下埠的狀態

docker是運行在Linux上的,在Windows中運行docker,實際上還是在Windows下先安裝了一個Linux環境,然後在這個系統中運行的docker。也就是說,服務中使用的localhost指的是這個Linux環境的地址,而不是我們的宿主環境Windows。我們可以通過命令:

找到這個Linux的ip地址,一般情況下這個地址是192.168.99.100,然後在Windows的瀏覽器中,輸入這個地址,加上服務的埠即可啟用了。

Ⅳ docker-compose快速啟動nginx

創建nginx目錄,目錄下創建docker-compose.yml文件如下:

nginx目錄下創建創建nginx.conf文件,根據實際情況配置,我這里寫一個示例:

在nginx目錄下創建build目錄,將前端靜態文件拷貝到下邊

在nginx目錄下執行如下命令啟動服務

啟動之後,nginx就可以正常使用了。

熱點內容
擔保中介源碼 發布:2025-02-08 17:14:37 瀏覽:408
手機存儲卡速度測試 發布:2025-02-08 17:02:57 瀏覽:24
洪恩編程 發布:2025-02-08 17:02:19 瀏覽:812
linux遠程式控制制 發布:2025-02-08 17:02:16 瀏覽:152
珠心算演算法 發布:2025-02-08 17:00:37 瀏覽:916
動態ip可以做伺服器么 發布:2025-02-08 17:00:33 瀏覽:218
oracle定義存儲過程 發布:2025-02-08 16:54:35 瀏覽:149
mac玩飢荒要什麼配置 發布:2025-02-08 16:52:18 瀏覽:681
androidattributeset 發布:2025-02-08 16:51:23 瀏覽:423
c語言調用函數返回值 發布:2025-02-08 16:51:19 瀏覽:789