主要介紹 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
