主要介紹 docker 中 Nginx 的部署及專案目錄掛載券的方法,docker 中部署一個服務,有三種方法,分別是 docker run、Dockerfile、docker-compose ,
下面用 docker-compose 方法部署 Nginx,
1、準備作業
先在主機創建作業檔案夾,為了放置 Nginx 的組態檔等,創建檔案夾的方法,自己搞定,
[root@dockeruat nginx]# pwd
/usr/local/nginx
[root@dockeruat nginx]# tree
.
├── conf.d
│ ├── default.conf
│── docker-compose.yml
├── etc
│ ├── cert
│ └── letsencrypt
├── html
│ └── index.html
├── logs
│ ├── access.log
│ └── error.log
├── nginx.conf
└── www
└── index.html
先隨便啟動一個 Nginx 容器(用第一種方法,docker run),主要是為了獲取 Nginx 容器內部的組態檔,
#啟動一個容器
docker run -d --name nginx nginx
# 查看 容器 獲取容器ID 或直接使用名字
docker ps -a
啟動容器后,容器內部會生成 Nginx 的組態檔,將其復制到本地對應檔案夾內,
# 拷貝容器內 Nginx 默認組態檔到本地當前目錄下的 nginx 目錄($PWD 當前全路徑)
# $PWD=針對上面的檔案目錄,/usr/local/nginx
docker cp nginx:/etc/nginx/nginx.conf $PWD/
現在,可以洗掉這個容器了,
# 停止容器
docker container stop nginx
# 洗掉容器
docker container rm nginx
2、部署容器
開始部署 Nginx 容器,就是上面提到的用第三種方式部署,
創建這個檔案,docker-compose.yml 黏貼以下內容,檔案放置位置,看上面的目錄結構,
version: '3'
services:
nginx:
restart: always
container_name: nginx
image: nginx
ports:
- 1001:80
- 1443:443
volumes:
- /data/front:/usr/share/nginx/html
- /usr/local/nginx/www:/var/www
- /usr/local/nginx/logs:/var/log/nginx
#- /usr/local/nginx/nginx.conf/:/etc/nginx/nginx.conf #不能掛載,不知道為什么,必須手動拷貝組態檔才行
- /usr/local/nginx/etc/cert:/etc/nginx/cert
- /usr/local/nginx/conf.d:/etc/nginx/conf.d
environment:
- NGINX_PORT=80
privileged: true
啟動容器
docker-compose up -d
查看創建的容器
docker ps

3、配置 Nginx 的 nginx.conf 檔案

這個檔案是剛才從容器里拷貝過來的,其實保留默認配置就行不用改任何內容,主要關注最后一行

最后一行表示,這個主組態檔會自動檢索其子目錄的下所有以 .conf 結尾的檔案配置,
所以,你的專案配置可以在其子目錄下創建一個以 .conf 結尾的檔案來配置就行,
比如,我創建的檔案:
├── conf.d
│
├── default.conf

root /usr/share/nginx/html;
這一行,必須這樣配置,表示容器里的專案代碼放置的目錄,
但是,專案代碼實際不用放到這里,上面已經做了資料掛載,放到本地上對應的掛載目錄下即可,
讀后感
來這里找我交流
- QQ群:330374464
- 公眾號:軟體測驗資源站(ID:testpu)
- 語雀:https://www.yuque.com/testpu/pro
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/290615.html
標籤:其他
下一篇:如何在docker里部署lnmp
