您的位置:首页 > 运维架构 > Docker

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

2016-03-10 14:08 801 查看
  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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: