這篇文章主要講解了“Docker nginx容器中怎么部署靜態(tài)文件”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Docker nginx容器中怎么部署靜態(tài)文件”吧!
成都創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站建設(shè)、做網(wǎng)站與策劃設(shè)計(jì),惠州網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:惠州等地區(qū)。惠州做網(wǎng)站價(jià)格咨詢:18980820575
注: Docker版本如下:
Client: Version: 17.12.0-ce API version: 1.35 Go version: go1.9.2 Git commit: c97c6d6 Built: Wed Dec 27 20:11:19 2017 OS/Arch: linux/amd64 Server: Engine: Version: 17.12.0-ce API version: 1.35 (minimum version 1.12) Go version: go1.9.2 Git commit: c97c6d6 Built: Wed Dec 27 20:09:53 2017 OS/Arch: linux/amd64 Experimental: false
本人使用的是ubuntu18, 已經(jīng)安裝了docker, 之后要有nginx鏡像, 我使用的nginx鏡像是nginx:1.14
前后端分離, 前端單獨(dú)部署在nginx中, 但是安裝nginx, 看了教程, 感覺要裝很多東西, 步驟很多...由于服務(wù)器上裝了docker, 所以我們就用nginx容器了, 服務(wù)器上不再手動(dòng)安裝nginx.
用docker的卷,將nginx容器的目錄掛載到host機(jī)器的本地文件中, 這樣我們只需要修改host中對(duì)應(yīng)目錄的文件即可, 方便管理.
List-1.1 使用docker volume create 卷名創(chuàng)建數(shù)據(jù)卷
xx@xx-ubuntu:/opt/software/nginx/html$ docker volume create nginx xx@xx-ubuntu:/opt/software/nginx/html$ docker volume ls DRIVER VOLUME NAME local nginx
如下的List-1.2所示, 使用docker volume inspect nginx命令查看剛才創(chuàng)建的數(shù)據(jù)卷nginx, 可以看到這個(gè)數(shù)據(jù)卷對(duì)應(yīng)到本地的/var/lib/docker/volumes/nginx/_data目錄, 后面會(huì)去查看這個(gè)目錄, 下面的內(nèi)容中會(huì)涉及
List-1.2
xx@xx-ubuntu:/opt/software/nginx/html$ docker volume inspect nginx [ { "CreatedAt": "2018-12-18T20:18:41+08:00", "Driver": "local", "Labels": {}, "Mountpoint": "/var/lib/docker/volumes/nginx/_data", "Name": "nginx", "Options": {}, "Scope": "local" } ]
執(zhí)行如下List-2.1中的命令, 這里值得注意的是"-v nginx:/etc/nginx "這個(gè)參數(shù), 這個(gè)的意思是將數(shù)據(jù)卷nginx掛載到容器的/etc/nginx目錄
List-2.1
xx@xx-ubuntu:/opt/software/nginx/conf$ docker run -d -v nginx:/etc/nginx -p 80:80 --name nginx nginx:1.14
查看數(shù)據(jù)卷nginx對(duì)應(yīng)的本地目錄(根據(jù)List-1.2我們得知數(shù)據(jù)卷nginx對(duì)應(yīng)的本地目錄), 如下List-2.2所示, 多出來很多東西, 這些文件都是nginx的. 我們來查看nginx.conf這個(gè)文件, 如List2.3所示, 可知關(guān)鍵是/etc/nginx/conf.d目錄下的.conf文件, 默認(rèn)有個(gè)default.conf, 我們拷貝default.conf, 重命名為hello.conf, 內(nèi)容如下List-2.5所示
List-2.2 要用root去查看
root@xx-ubuntu:/var/lib/docker/volumes/nginx/_data# ll total 48 drwxr-xr-x 3 root root 4096 12月 18 20:18 ./ drwxr-xr-x 3 root root 4096 12月 18 20:18 ../ drwxr-xr-x 2 root root 4096 12月 18 20:21 conf.d/ -rw-r--r-- 1 root root 1007 11月 6 21:28 fastcgi_params -rw-r--r-- 1 root root 2837 11月 6 21:28 koi-utf -rw-r--r-- 1 root root 2223 11月 6 21:28 koi-win -rw-r--r-- 1 root root 5170 11月 6 21:28 mime.types lrwxrwxrwx 1 root root 22 11月 6 21:28 modules -> /usr/lib/nginx/modules -rw-r--r-- 1 root root 643 11月 6 21:28 nginx.conf -rw-r--r-- 1 root root 636 11月 6 21:28 scgi_params -rw-r--r-- 1 root root 664 11月 6 21:28 uwsgi_params -rw-r--r-- 1 root root 3610 11月 6 21:28 win-utf
List-2.3 用root用戶查看
root@xx-ubuntu:/var/lib/docker/volumes/nginx/_data# more nginx.conf ... #包含/etc/nginx/conf.d目錄下所有.conf結(jié)尾的文件 include /etc/nginx/conf.d/*.conf; }
List-2.4 用root用戶去操作
root@xx-ubuntu:/var/lib/docker/volumes/nginx/_data/conf.d# ll total 16 drwxr-xr-x 2 root root 4096 12月 18 20:21 ./ drwxr-xr-x 3 root root 4096 12月 18 20:18 ../ -rw-r--r-- 1 root root 1093 11月 6 21:28 default.conf -rw-r--r-- 1 root root 1087 12月 18 20:21 hello.conf
List-2.5 其它不必要的內(nèi)容被我刪除了
root@xx-ubuntu:/var/lib/docker/volumes/nginx/_data/conf.d# more hello.conf server { #listen的值修改為自己要的端口 listen 3002; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { #root的值修改為自己的就可以了,表示這個(gè)目錄下有我們要訪問的靜態(tài)資源 root /opt/html; index index.html index.htm; } }
上述的完成后, 我們?cè)诒镜啬夸浵陆▊€(gè)index.html, 如下List-2.6所示
List-2.6
xx@xx-ubuntu:/opt/software/nginx/html$ ll total 12 drwxr-xr-x 2 mjduan mjduan 4096 12月 18 20:24 ./ drwxr-xr-x 4 mjduan mjduan 4096 12月 18 20:22 ../ -rw-r--r-- 1 mjduan mjduan 171 12月 18 20:24 index.html
之后我們刪除之前創(chuàng)建的容器nginx, 再創(chuàng)建一個(gè)容器, 如下List-2.7所示:
List-2.7
xx@xx-ubuntu:/opt/software/nginx/conf$ docker rm nginx nginx xx@xx-ubuntu:/opt/software/nginx/conf$ docker run -d -v nginx:/etc/nginx -v /opt/software/nginx/html:/opt/html -p 3002:3002 -p 80:80 --name nginx nginx:1.14
說明: List-2.7中, "-v nginx:/etc/nginx"是將數(shù)據(jù)卷nginx掛載到容器的/etc/nginx目錄, "-v /opt/software/nginx/html:/opt/html"是將本地的/opt/software/nginx/html目錄掛載到容器的/opt/html目錄, 由于我們需要3002端口(List-2.5中設(shè)置的),所以需要映射出來.
之后瀏覽器中訪問3002端口, 如下圖2.1所示:
圖2.1 看到的是List-2.6中index.html
感謝各位的閱讀,以上就是“Docker nginx容器中怎么部署靜態(tài)文件”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Docker nginx容器中怎么部署靜態(tài)文件這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!