CentOS 使用 Docker 服务搭建 Nginx 文件服务器

准备

在CentOS 的某个目录下,创建下面的目录形式(也可以本地创建,用ftp上传) /data/fileserver/

  • data
    • fileserver
      • Dockerfile
      • nginx.conf
      • data/

Dockerfile

这里先写 Dockerfile 文件,注意文件名保持一致

1
2
3
4
5
6
7
8
9
FROM hub.c.163.com/public/nginx:1.2.1
#从镜像中心下载镜像,如果本地已经存在,则使用本地的。这里使用的163镜像中心

MAINTAINER tao
## 作者,可以不写
#COPY nginx.conf /etc/nginx/nginx.conf
#这里是将 Dockerfile 同级目录的 nginx.conf 拷贝到 /etc/nginx/nginx.conf
# 但是这里吧,后期 nginx.conf 可能会修改,所以我注释掉了
# 我用的是 -v 映射,后期修改的时候,重启一下镜像就可以了

nginx.conf

nginx.conf 完整文件

这里为了方便 ,配置文件中直接使用的是 user root; 最好是新创建一个用户。设置好权限。使用另一个用户,安全性更高一些。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
server {
        listen       8080;
        server_name  localhost;

        charset utf-8;

        #access_log  logs/host.access.log  main;
        

        location / {
            #显示的根目录 测试文字
            root  /usr/share/nginx/html; 
            autoindex on;             #开启索引功能  
            autoindex_exact_size off; # 关闭计算文件确切大小(单位bytes),只显示大概大小(单位kb、mb、gb)  
            autoindex_localtime on;   # 显示本机时间而非 GMT 时间  
        }
}

镜像+容器

cd 到 fileserver目录下,执行命令,生成一个新的镜像 $ docker build -t fileserver .

生成并运行容器

docker run -itd --restart=always -p 8090:8080 --name fileserver -v /data/fileserver/data:/usr/share/nginx/html/ -v /data/fileserver/nginx.conf:/etc/nginx/nginx.conf fileserver 

这里nginx配置的是8080端口,也就是 -p 8090:8080 后面的这个8080,这个是容器内服务的端口,对外没有影响。8090是我们外面映射的端口,远程访问就是用这个8090的端口

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy