Docker 中如何安裝配置 Nginx


拉取 nginx 最新版鏡像,然后簡單啟動一個 nginx 容器:

docker pull nginx:latest
docker run --name nginx01 -d -p 80:80 nginx

這樣就安裝並運行好了 nginx,可以使用瀏覽器訪問 ip 地址即可看到 nginx 服務。

如果要對 nginx 進行配置,就需要通過交互模式進入容器:

docker exec -it nginx01 bash 

在容器內部就可以訪問到完整的 nginx 程序文件,可以找到:

html文件目錄:/usr/share/nginx/html

nginx.conf 配置文件:/etc/nginx/nginx.conf

default.conf 配置文件:/etc/nginx/conf.d/default.conf

log日志文件目錄:/var/log/nginx

ssl配置目錄:/ssl

每一次都要進入容器內部去編輯配置文件有些不方便,而且還需要在容器內部安裝 vi 或 vim,所以最好將容器與主機磁盤進行掛載。

掛載之前,我們在主機上創建好 nginx 文件目錄:

sudo mkdir -p /home/docker/nginx/{log,ssl,html,conf/conf.d}
sudo chmod -R 755 /home/docker/nginx/html

 然后通過 docker cp 命令將容器內的 nginx 配置文件 copy 到剛創建的主機文件目錄中:

docker cp nginx01:/etc/nginx/nginx.conf /home/docker/nginx/conf/nginx.conf
docker cp nginx01:/etc/nginx/conf.d/default.conf /home/docker/nginx/conf/conf.d/default.conf

接着,我們停止並刪除 nginx01 容器:

docker stop nginx01
docker rm nginx01

好了,我們要重新啟動一個 nginx 容器了:

docker run --name nginx02 -d
--restart=always 
--privileged=true
-v /home/docker/nginx/html:/usr/share/nginx/html
-v /home/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
-v /home/docker/nginx/conf/conf.d/default.conf:/etc/nginx/conf.d/default.conf
-v /home/docker/nginx/log:/var/log/nginx
-v /home/docker/nginx/ssl:/ssl/ 
-p 443:443 -p 80:80
nginx

使用 --privileged=true 參數,容器內的 root 用戶才擁有真正的 root 權限,否則容器內的 root 只是主機上的一個普通用戶。

使用 -v path1:path2 參數,其中 path1 是主機的磁盤地址,path2 是 docker 容器的虛擬磁盤地址,可以定義多個 -v 映射多個文件夾。

最后,通過 docker ps 命令查看 nginx 容器是否已成功運行。

 

通常,我們在 nginx 中部署項目的時候,都喜歡在 conf.d/ 目錄下創建新的配置文件(如:xxx.conf),但在 docker 中,你需要注意新建的 xxx.conf 文件是否被成功映射,否則可能就無法被 nginx 正常讀取到,也就無法生效。

 

 一個簡單的記錄,希望有所幫助!


免責聲明!

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



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