最简单的基于 nginx 的下载服务器
有时候, 有些地方不能从互联网下载东西, 但是可以上传一些内部的 docker image, 比如 生产环境, 一般是连不上外网的, 及时使用代理, 很有可能也不允许下载很大的东西. 这个时候, 可以做个 docker image 上传上去, 然后供生产环境使用. 下面是一个基于 nginx 的最简单 web 服务器.
需要2个文件, 里面的 mat.zip 和 那个 jdk 的 exe 是我需要下载的东西.
Dockerfile (去除下面的所有注释)
FROM alpine
RUN apk update
RUN apk --no-cache add nginx #安装 nginx
ADD nginx.conf /etc/nginx/nginx.conf #复制本地的配置文件
RUN mkdir -p /run/nginx #建立 nginx pid 文件需要的文件夹
ADD mat.zip /usr/share/nginx/www/ #复制本地需要复制的文件1 例子
ADD jdk-8u171-windows-x64.exe /usr/share/nginx/www/ #复制本地需要复制的文件2 例子
RUN chmod 755 /usr/share/nginx/www/* #更改文件读权限
EXPOSE 80 #暴露80端口
CMD ["nginx", "-g", "daemon off;"] #启动 nginx
nginx.conf
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
index index.html;
default_type application/octet-stream;
sendfile on;
server {
location / {
root /usr/share/nginx/www;
index not_a_file;
autoindex on;
types {}
}
}
}
打包: docker build -t repo.tianxiaohui.com/xiatian/test:0.1 .
上传: docker push repo.tianxiaohui.com/xiatian/test:0.1
下载: docker pull repo.tianxiaohui.com/xiatian/test:0.1
运行: docker run -p 9191:80 repo.tianxiaohui.com/xiatian/test:0.1
使用: http://container.tianxiaophui.com:9191/