美文网首页
docker搭建nginx文件服务器

docker搭建nginx文件服务器

作者: 古甲哈醒 | 来源:发表于2020-03-05 11:33 被阅读0次

服务器环境: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、创建nginx容器
创建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 将主机8080端口映射到容器nginx的80端口
-v /data/docker_v/nginx/www:/home/www 将主机/data/docker_v/nginx/www目录映射到容器/home/www目录。这里/home/www是后面nginx配置文件中我们要指定的存放静态文件的位置,映射到主机目录后,直接将静态文件放到主机目录即可。
-d 后台启动
nginx 创建容器使用的镜像及版本

查看创建好的容器实例:

[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配置文件挂载到主机
进入nginx容器内部:

[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的默认配置文件为nginx.conf,但是我们不建议将个性化配置直接放在此文件中,而是在conf.d目录下创建*.conf文件,将配置信息放在这里。
我们看到conf.d下已经有一个default.conf文件,我们直接基于此文件进行配置。

为了配置管理方便,我们将conf.d目录下的配置文件直接映射到主机目录。
先将default.conf从容器拷贝到主机:

[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 主机配置文件位置

删除之前创建的容器,在之前的命令中加入
-v /data/docker_v/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf,重新创建容器:

[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的配置文件,静态文件目录都映射到了主机,下面我们直接去配置nginx。

4、配置nginx
打开主机上的nginx配置文件/data/docker_v/nginx/conf.d/default.conf,配置静态文件目录:

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即可。这个/home/www是容器中存放静态文件的地址,没有的话先创建。
前面我们创建容器的时候已将/home/www映射到主机目录/data/docker_v/nginx/www,后续我们操作静态文件只需在此主机目录下即可。
重启nginx容器,我们在主机/data/docker_v/nginx/www目录下放一张1.png的图片,然后浏览器访问这个图片,看是否配置成功。
浏览器上输入地址:http://192.168.2.130:8080/1.png,能看到说明配置成功。

5、题外话
这里稍微提一下nginx文件服务搭建好后,怎么跟tomcat结合提供文件上传、下载、浏览服务。
docker容器环境中,tomcat也是一个单独的容器,文件经浏览器上传后保存在tomcat的容器中,nginx在另外一个容器中,并不能直接访问到。
只要我们能让tomcat上传下载目录和nginx的静态文件目录在同一个目录位置,就能实现。
怎么实现?
直接将两个容器操作的目录挂载到同一个主机目录就行了,是不是很简单。

好了,关于nginx文件服务器搭建就介绍到这里,后面我会将更到项目中的相关技术分享给大家,一起交流探讨。

相关文章

网友评论

      本文标题:docker搭建nginx文件服务器

      本文链接:https://www.haomeiwen.com/subject/dtetrhtx.html