赞
踩
挂载格式: -p 机器的:镜像的
docker run --name nginx -p 8081:8081\
-v /www/workspace/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /www/workspace/nginx/html:/usr/share/nginx/html -d nginx \
-v /www/workspace/nginx/logs:/var/log/nginx \
-v /www/workspace/nginx/conf:/etc/nginx/conf.d
-d nginx
docker run:这是Docker的命令行接口(CLI)中的一个命令,用于启动一个新的容器实例。
--name nginx:这个选项为即将启动的容器指定一个名字,这里命名为nginx。
-p 8081:8081:这个选项将宿主机的8081端口映射到容器的8081端口。这意味着容器内的Nginx服务器将响应宿主机的8081端口上的请求。
-v /www/workspace/nginx/nginx.conf:/etc/nginx/nginx.conf:这个选项将宿主机的/www/workspace/nginx/nginx.conf文件挂载到容器内
的/etc/nginx/nginx.conf文件。这允许你直接修改宿主机的配置文件,而无需
重新构建容器。
-v /www/workspace/nginx/html:/usr/share/nginx/html:这个选项将宿主机的/www/workspace/nginx/html目录挂载到容器内的/usr/share/nginx/html目
录。这意味着容器内Nginx服务器的HTML文件将从宿主机的这个目录中提
供。
-d:这个选项让Docker在后台运行容器。
-v /www/workspace/nginx/logs:/var/log/nginx:这个选项将宿主机的/www/workspace/nginx/logs目录挂载到容器内的/var/log/nginx目录。这意
味着容器内Nginx服务器的日志文件将被写入宿主机的这个目录。
-v /www/workspace/nginx/conf:/etc/nginx/conf.d:这个选项将宿主机的/www/workspace/nginx/conf目录挂载到容器内
的/etc/nginx/conf.d目录。这意味着你可以在宿主机的这个目录中创建额外的
Nginx配置文件,然后通过容器内的Nginx服务器使用它们。
--restart=always(一直启动)
--privileged=true(高级权限)
基本命令大同小异
访问报404,
docker logs -f nginx
查看日志,"/etc/nginx/html/index.html" is not found (2: No such file or directory),是因为习惯了Windows下nginx都在一个目录内,这里需要将前端位置替换成/usr/share/nginx/html(而不是html等)
- worker_processes 1;
-
- events {
- worker_connections 1024;
- }
-
- http {
- include mime.types;
- default_type application/json;
-
- sendfile on;
-
- keepalive_timeout 65;
-
- server {
- listen 8080;
- server_name localhost;
- # 指定前端项目所在的位置
- location / {
- root /usr/share/nginx/html;
- index index.html index.htm;
- }
-
- error_page 500 502 503 504 /50x.html;
- location = /50x.html {
- root /usr/share/nginx/html;
- }
-
- # 反向代理到后端
- location /api {
- default_type application/json;
- #internal;
- keepalive_timeout 30s;
- keepalive_requests 1000;
- #支持keep-alive
- proxy_http_version 1.1;
- rewrite /api(/.*) $1 break;
- proxy_pass_request_headers on;
- #more_clear_input_headers Accept-Encoding;
- proxy_next_upstream error timeout;
- proxy_pass http://127.0.0.1:8081;
- #proxy_pass http://backend;
- }
- }
-
- upstream backend {
- server 127.0.0.1:8081 max_fails=5 fail_timeout=10s weight=1;
- #server 127.0.0.1:8082 max_fails=5 fail_timeout=10s weight=1;
- }
- }
worker_processes 1;:这行设置Nginx工作进程的数量为1。在生产环境中,通常会设置为等于CPU核心数。
events { worker_connections 1024; }:这行设置了每个工作进程可以打开的最大连接数。
http { ... }:这定义了HTTP服务器块,其中包括所有HTTP相关的设置。
include mime.types;:这行包含了MIME类型配置,它告诉Nginx如何处理不同类型的文件。
default_type application/json;:这行设置了默认的MIME类型为application/json。
sendfile on;:这启用了sendfile指令,允许Nginx直接将文件数据发送给客户端,而不需要先将数据读入内存。
keepalive_timeout 65;:这设置了客户端连接的keepalive超时时间。
server { ... }:这定义了一个服务器块,它监听8080端口,并处理请求。
location / { ... }:这是Nginx的第一个位置块,它匹配所有请求。它将根目录设置为/usr/share/nginx/html,并将index.html和index.htm作为默认的入口页面。
error_page 500 502 503 504 /50x.html;:这定义了错误页面,当服务器遇到500、502、503或504错误时,会重定向到50x.html页面。
location = /50x.html { ... }:这是一个精确匹配50x.html的location块,它将从/usr/share/nginx/html目录提供这个文件。
location /api { ... }:这是另一个位置块,它为所有以/api开头的请求提供代理服务。它设置了proxy_pass指令,将请求代理到http://127.0.0.1:8081。
upstream backend { ... }:这定义了一个上游服务器(upstream)块,它包含了一个服务器列表,用于处理请求。在这里,它将请求代理到运行在127.0.0.1:8081的服务器。
参考
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。