《》拷贝windows下的nginx的config下文件到linux的文件夹下:
修改nginx.conf的配置文件
...省略
server {
listen 9208;
server_name localhost;
.......省略
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
...省略
location /files/ {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Headers' '*';
add_header 'Access-Control-Allow-Methods' '*';
alias /data/aitrain/;
}
...省略
location = /50x.html {
root /usr/share/nginx/html;
}
...省略
注意:
/usr/share/nginx/html 这个目录在docker中是固定的;
还有就是window拷贝过来是要修改这个index.html所在的绝对路径的,绝对路径是docker中的绝对路径;
上图 files 的配置是加入了跨域处理;
下面docker编排是暴漏了9208端口,如果nginx启动没有用到9208就访问不到,故而要修改server的 listen 监听端口为9208;
《》拷贝windows下的nginx的hello下文件到linux的文件夹下:
《》linux的/home/docker/aitrain/nginx下创建logs文件夹
《》编写Dockerfile文件:
[root@1 aitrain]# cat Dockerfile_nginx
FROM nginx:latest
EXPOSE 9208
CMD ["nginx", "-g", "daemon off;"]
注意:
FROM 是依赖的镜像;EXPOSE 是暴漏端口9208;CMD是启动nginx的命令
《》编写shell脚本
[root@1 aitrain]# cat docker_nginx.sh
docker stop aitrain_nginx
docker rm aitrain_nginx
docker build -f Dockerfile_nginx -t aitrain_nginx .
docker run --restart always -p 9208:9208 \
--name aitrain_nginx --privileged=true \
-v /data/aitrain:/data/aitrain \
-v /home/docker/aitrain/nginx/conf:/etc/nginx \
-v /home/docker/aitrain/nginx/html:/usr/share/nginx/html \
-v /home/docker/aitrain/nginx/logs/:/var/log/nginx/ \
-d aitrain_nginx
注意:
最底下的这个是运行docker编排文件的命令
-v linux物理机路径:docker内部的路径(-v是建立linux物理机路径和docker容器内部路径的映射),当然这个并没有用到volumn卷积
如果nginx没有启动成功,可以在/home/docker/aitrain/nginx/logs/下查看access.log和error.log日志来排查问题,如果access.log没有自动创建出来就表示nginx没有成功启动,如果出现了不能访问,那就可以通过日志来排查问题。
《》执行shell脚本生成docker运行容器:
sh docker_nginx.sh