@adonia
2018-05-25T06:17:01.000000Z
字数 2192
阅读 221
nginx
docker pull nginx;下载完成后,通过docker images查看镜像docker run -d -p 8080:80 --rm nginx;启动完成后,通过docker ps -a查看。
➜ nginx docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES6693be7a2d81 nginx "nginx -g 'daemon ..." 5 minutes ago Up 5 minutes 0.0.0.0:8080->80/tcp sad_allen
Tips: 启动完成后,可以在浏览器中访问
http://localhost:8080检测服务启动是否正常。
为了方便配置nginx,需要把nginx的配置暴露在docker容器之外。
* 首先,将容器中的配置拷贝至本地:docker cp 6693be7a2d81:/ect/nginx /Users/adonia/workspace/nginx;拷贝完成后,在/Users/adonia/workspace/nginx目录下,会多出个nginx目录,重命名为conf。其下即为nginx的配置文件。
➜ nginx ll conftotal 72drwxr-xr-x 3 adonia staff 96 4 30 21:55 conf.d-rw-r--r-- 1 adonia staff 1007 4 10 00:01 fastcgi_params-rw-r--r-- 1 adonia staff 2837 4 10 00:01 koi-utf-rw-r--r-- 1 adonia staff 2223 4 10 00:01 koi-win-rw-r--r-- 1 adonia staff 5170 4 10 00:01 mime.typeslrwxr-xr-x 1 adonia staff 22 5 22 00:12 modules -> /usr/lib/nginx/modules-rw-r--r-- 1 adonia staff 643 4 10 00:01 nginx.conf-rw-r--r-- 1 adonia staff 636 4 10 00:01 scgi_params-rw-r--r-- 1 adonia staff 664 4 10 00:01 uwsgi_params-rw-r--r-- 1 adonia staff 3610 4 10 00:01 win-utf
配置文件入口nginx.conf内容如下:
user nginx;worker_processes 1;error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid;events {worker_connections 1024;}http {include /etc/nginx/mime.types;default_type application/octet-stream;log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log /var/log/nginx/access.log main;sendfile on;#tcp_nopush on;keepalive_timeout 65;#gzip on;include /etc/nginx/conf.d/*.conf;}
三个需要定制化的配置:
1. nginx的配置文件目录(/etc/nginx -> /Users/adonia/workspace/nginx/conf)
2. nginx的日志目录(/var/log/nginx -> /Users/adonia/workspace/nginx/log)
3. nginx的静态文件目录(/usr/share/nginx/html -> /Users/adonia/workspace/nginx/html)
Tips: 需手动创建三个目录。
docker stop 6693be7a2d81,由于启动参数中增加了--rm,停止容器之后,容器文件即被删除。
docker run --rm -d -p 8080:80 --volume $PWD/conf:/etc/nginx --volume $PWD/log:/var/log/nginx --volume $PWD/html:/usr/share/nginx/html nginx
<html><body><h3>hello world!</h3></body></html>
在浏览器中访问localhost:8080,就应该显示新的页面内容了。
为了验证可在外部定制化nginx配置,将/Users/adonia/workspace/nginx/conf/nginx.conf中的error_log的级别由warn改成debug。重载nginx: docker exec d4a0d0ff5d05 nginx -s reload。重载成功后,通过查看/Users/adonia/workspace/nginx/log/error.log验证。