• 利用Docker Hub上的Nginx部署Web应用


      Docker Hub上提供了很多镜像,如Nginx,我们不需要自己从ubuntu开始装Nginx再做发布,只需要先下载镜像到本地

    docker pull nginx

    在/opt下新建文件夹API,将需要发布的Web应用(我的应用文件夹名称是 ElecManageSystem)放到API下,创建并编辑nginx.conf配置文件,用于替换nginx的默认配置文件

    nginx.conf的内容如下(根据自己的情况自行更改):

    worker_processes  auto;
    #pid         /usr/local/nginx/logs/nginx.pid;
    #error_log   /usr/local/nginx/logs/error.log crit;
    worker_rlimit_nofile 1000000;
    
    events {
        worker_connections  65536;
        multi_accept on;
        use epoll;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        sendfile        on;
        tcp_nopush     on;
        tcp_nodelay on;
        server_tokens off;
    
        keepalive_timeout  10;
        client_header_timeout 10;
        client_body_timeout 10;
        reset_timedout_connection on;
        send_timeout 10;
    
        limit_conn_zone $binary_remote_addr zone=addr:5m;
        limit_conn addr 100;
    
        gzip  on;
        gzip_disable "msie6"
        gzip_static on;
        gzip_proxied any;
        gzip_min_length 1000;
        gzip_comp_level 4;
        gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
    
        open_file_cache max=100000 inactive=20s;
        open_file_cache_valid 30s;
        open_file_cache_min_uses 2;
        open_file_cache_errors on;
    
        # include /etc/nginx/conf.d/*.conf;
        # include /etc/nginx/sites-enabled/*;
    
        server {
            listen       80;
            # 接口服务的IP地址
            server_name  xxx.xx.xx.xx;
            charset utf-8;
            access_log off;
            # ElecManageSystem-应用文件夹名称 app-index.html页面所在文件夹
            root   /usr/share/nginx/html/ElecManageSystem/app;
            location / {
                index  index.html index.htm;
            }
    
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    }

    然后创建并编辑Dockerfile

    cd /opt
    nano Dockerfile

    Dockerfile的内容如下:

    FROM nginx
    MAINTAINER king
    
    # 将API下的应用文件夹复制到到容器的 /usr/share/nginx/html 路径下,API文件夹不会过去。
    ADD API /usr/share/nginx/html
    # 用编辑过的nginx.conf替换默认的配置文件
    COPY nginx.conf /etc/nginx/nginx.conf

    在/opt下打开终端,或者打开终端后进入到/opt下(cd /opt),在这里根据Dockerfile创建新的镜像。nginx-ems是新镜像的名称,可自行更改。

    docker build -t nginx-ems .

    以刚创建的新镜像nginx-ems为系统模板运行容器

    docker run -i -p 1314:80 -t --name ems nginx-ems

    -i : 可交互,这里只能监测访问记录;

    -p 1314:80 : 将容器的80端口映射到宿主机的1314端口上,即通过宿主机的1314端口即可访问容器的80端口;

    --name ems : 给容器命名为ems,可自行更改;

    nginx-ems : 运行容器的系统模板。

    如有问题还可参考: https://hub.docker.com/_/nginx/

    如有需要替换下本地Host: http://laod.cn/hosts/2016-google-hosts.html

  • 相关阅读:
    Java判断一个实体类对象实例的所有成员变量是否为空
    正则表达式 整数
    将定时任务cron 解析成中文
    如何使用html定义一个红色小圆点
    Oracle获取当前日期前一个月的全部日期
    京东系统架构师如何让笨重的架构变得灵巧
    POI使用详解
    Java Excel 列号数字与字母互相转换
    使用exe4j将java项目打成exe执行程序
    Address already in use: JVM_Bind错误的解决
  • 原文地址:https://www.cnblogs.com/xcloudbiz/p/5261689.html
Copyright © 2020-2023  润新知