Docker安裝Nginx


1、安裝Nginx鏡像

docker pull nginx

不指定版本,默認下載最新版本

安裝后,執行 docker images 查看 nginx 鏡像。

2、創建Nginx容器

docker run -it -d 
--name mynginx 
-p 9999:9999 
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf 
-v /home/nginx/www:/home/nginx/www 
--privileged --net=host nginx

注意,如上命令執行時不要有回車,該格式只是為了更好講解。

docker run:創建容器的命令
-i:表示運行容器
-t:表示容器啟動后會進入其命令行。加入這兩個參數后,容器創建就能登錄進去。即分配一個偽終端。
--name :為創建的容器命名。
-v:表示目錄映射關系(前者是宿主機目錄,后者是映射到宿主機上的目錄),可以使用多個-v做多個目錄或文件映射。注意:最好做目錄映射,在宿主機上做修改,然后共享到容器上。
-d:在run后面加上-d參數,則會創建一個守護式容器在后台運行(這樣創建容器后不會自動登錄容器,如果只加-i -t兩個參數,創建后就會自動進去容器)。
-p:表示端口映射,前者是宿主機端口,后者是容器內的映射端口。可以使用多個-p做多個端口映射

我們來解讀一下上邊創建nginx的重要指令:

--name mynginx 表示給這個容器起了一個 mynginx 的名字。

第一個“-v”,是配置文件的映射,前邊代表宿主機,后面代表容器,解釋為宿主機的 nginx 配置文件,映射到容器內的 nginx 子目錄下的配置文件上。

第二個 "-v" ,是宿主機上目錄的映射,映射到容器內的同名的目錄下面,同樣的前邊代表宿主機,后面代表容器,這樣實現的好處就是不用每次都要登入容器內進行文件的操作,直接宿主機 /home/nginx/www 目錄即等同於操作容器。

nginx.conf配置

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       9999;
        server_name  localhost;

        # Vue路由模式為history需添加的配置
        location / {
            if (!-e $request_filename) {
                rewrite ^(.*)$ /index.html?s=$1 last;
                break;
            }
            root   /home/nginx/www;
            index  index.html;
        }

        # 獲取真實IP以及Websocket需添加的配置
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        # 客戶端Body大小限制(文件上傳大小限制配置)
        client_max_body_size 5m;

        error_page   500 502 503 504 404  /50x.html;
        location = /50x.html {
            root   html;
        }

    }
}

其中 /home/nginx/www 表示存放的打包的資源根目錄,也就是訪問 9999 端口時 www 作為根目錄,www 目錄自行創建,放一個簡單的 html 即可。

在 /home/nginx/conf 目錄下創建 nginx.conf 文件,采用如上配置。

再來回顧一下,需要在 /home/nginx 創建兩個目錄,分別是 conf、www,其中 conf 目錄存放 nginx.conf 配置文件,代碼如上方所示。

執行創建容器代碼截圖:

3、操作nginx容器

通過 docker ps -a 我們可以看到 nginx 容器的運行狀態。

由於我們在創建容器時起了別名,那么可以直接操作別名:

docker start mynginx 啟動
docker stop mynginx 暫停
docker rm mynginx 移除

至此,我們可以通過端口號去訪問了,http://ip:9999


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM