docker搭建nginx文件服務(wù)器

服務(wù)器環(huán)境:centos7.5+,docker19.03.6

1、拉取nginx鏡像
搜索nginx鏡像:

[root@iZbp13sno1lc2yxlhjc4b3Z ~]# docker search nginx
NAME                          DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
nginx                              Official build of Nginx.                        12749               [OK]                              

拉取nginx鏡像:

[root@iZbp13sno1lc2yxlhjc4b3Z ~]# docker pull nginx

這里我們不指定版本,直接拉取最新的latest
查看已拉取的鏡像:

[root@iZbp13sno1lc2yxlhjc4b3Z ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              a1523e859360        7 days ago          127MB

2、創(chuàng)建nginx容器
創(chuàng)建nginx容器:

[root@iZbp13sno1lc2yxlhjc4b3Z ~]# docker run --name nginx -p 8080:80 -v /data/docker_v/nginx/www:/home/www -d nginx

其中:
--name nginx 容器的名稱為nginx
-p 8080:80 將主機(jī)8080端口映射到容器nginx的80端口
-v /data/docker_v/nginx/www:/home/www 將主機(jī)/data/docker_v/nginx/www目錄映射到容器/home/www目錄。這里/home/www是后面nginx配置文件中我們要指定的存放靜態(tài)文件的位置,映射到主機(jī)目錄后,直接將靜態(tài)文件放到主機(jī)目錄即可。
-d 后臺(tái)啟動(dòng)
nginx 創(chuàng)建容器使用的鏡像及版本

查看創(chuàng)建好的容器實(shí)例:

[root@iZbp13sno1lc2yxlhjc4b3Z ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS 
1dae5d2ffa61        nginx               "nginx -g 'daemon of…"   6 days ago          Up 6 days           0.0.0.0:8080->80/tcp                                                               nginx

安裝成功,瀏覽器輸入地址:http://192.168.2.130:8080/,可以看到nginx版本信息。

3、nginx配置文件掛載到主機(jī)
進(jìn)入nginx容器內(nèi)部:

[root@iZbp13sno1lc2yxlhjc4b3Z ~]# docker exec -it nginx bash
root@1dae5d2ffa61:/# cd /etc/nginx/
root@1dae5d2ffa61:/etc/nginx# ls
conf.d  fastcgi_params  koi-utf  koi-win  mime.types  modules  nginx.conf  scgi_params  uwsgi_params  win-utf
root@1dae5d2ffa61:/etc/nginx# cd conf.d/
root@1dae5d2ffa61:/etc/nginx/conf.d# ls
default.conf

我們看到nginx的默認(rèn)配置文件為nginx.conf,但是我們不建議將個(gè)性化配置直接放在此文件中,而是在conf.d目錄下創(chuàng)建*.conf文件,將配置信息放在這里。
我們看到conf.d下已經(jīng)有一個(gè)default.conf文件,我們直接基于此文件進(jìn)行配置。

為了配置管理方便,我們將conf.d目錄下的配置文件直接映射到主機(jī)目錄。
先將default.conf從容器拷貝到主機(jī):

[root@iZbp13sno1lc2yxlhjc4b3Z ~]# docker cp 1dae5d2ffa61:/etc/nginx/conf.d/default.conf  /data/docker_v/nginx/conf.d/default.conf

1dae5d2ffa61 容器id
/data/docker_v/nginx/conf.d/default.conf 主機(jī)配置文件位置

刪除之前創(chuàng)建的容器,在之前的命令中加入
-v /data/docker_v/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf,重新創(chuàng)建容器:

[root@iZbp13sno1lc2yxlhjc4b3Z ~]# docker run --name nginx -p 8080:80 -v /data/docker_v/nginx/www:/home/www -v /data/docker_v/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf -d nginx

到此,nginx的配置文件,靜態(tài)文件目錄都映射到了主機(jī),下面我們直接去配置nginx。

4、配置nginx
打開主機(jī)上的nginx配置文件/data/docker_v/nginx/conf.d/default.conf,配置靜態(tài)文件目錄:

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        #root   /usr/share/nginx/html;
    root    /home/www;
        index  index.html index.htm;
    }

將location下的root后面地址修改為/home/www即可。這個(gè)/home/www是容器中存放靜態(tài)文件的地址,沒有的話先創(chuàng)建。
前面我們創(chuàng)建容器的時(shí)候已將/home/www映射到主機(jī)目錄/data/docker_v/nginx/www,后續(xù)我們操作靜態(tài)文件只需在此主機(jī)目錄下即可。
重啟nginx容器,我們?cè)谥鳈C(jī)/data/docker_v/nginx/www目錄下放一張1.png的圖片,然后瀏覽器訪問這個(gè)圖片,看是否配置成功。
瀏覽器上輸入地址:http://192.168.2.130:8080/1.png,能看到說明配置成功。

5、題外話
這里稍微提一下nginx文件服務(wù)搭建好后,怎么跟tomcat結(jié)合提供文件上傳、下載、瀏覽服務(wù)。
docker容器環(huán)境中,tomcat也是一個(gè)單獨(dú)的容器,文件經(jīng)瀏覽器上傳后保存在tomcat的容器中,nginx在另外一個(gè)容器中,并不能直接訪問到。
只要我們能讓tomcat上傳下載目錄和nginx的靜態(tài)文件目錄在同一個(gè)目錄位置,就能實(shí)現(xiàn)。
怎么實(shí)現(xiàn)?
直接將兩個(gè)容器操作的目錄掛載到同一個(gè)主機(jī)目錄就行了,是不是很簡(jiǎn)單。

好了,關(guān)于nginx文件服務(wù)器搭建就介紹到這里,后面我會(huì)將更到項(xiàng)目中的相關(guān)技術(shù)分享給大家,一起交流探討。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容