赞
踩
docker部署个nginx,实在是再简单不过了吧
#拉取镜像
docker pull nginx
#启动一个容器
docker run --name docker_nginx -d -p 80:80 docker.io/nginx
就运行起来了
但是存在的问题是:
1.日志哪儿去了?
2.修改了配置文件怎么办?
3.项目的文件放在哪儿
一般来说,解决的办法就是把文件放在宿主机,然后挂载到容器中,修改配置文件只需要docker exec -it containe_name bash进入到容器nginx -s reload重新加载一次配置文件即可。
我是直接拉取的docker hub的nginx镜像
在容器中相关位置分别是:
日志位置:/var/log/nginx/
配置文件位置:/etc/nginx/
项目位置:/usr/share/nginx/html
nginx的日志比较简单,主要就是access和error日志,只需要挂载宿主目录到容器中nginx日志所在路径即可。
配置文件的问题
配置文件相对来说有点麻烦,一般nginx只需要加载nginx.conf就可以了,在dokcer中,是首先加载nginx.conf,然后在nginx.conf有这么一行include /etc/nginx/conf.d/*.conf;,就是加载conf.d目录下的配置文件。所以对于配置只需要挂载到conf.d,覆盖掉即可。
类似日志的操作,挂载宿主机目录到容器即可。
运行容器
1.在宿主机器创建目录
mkdir -p /zzz/mynginx/nginx/log
mkdir -p /zzz/mynginx/nginx/conf
mkdir -p /zzz/mynginx/nginx/html
2.运行容器
docker run --name docker_nginx -d -p 80:80\ -v /zzz/mynginx/nginx/log:/var/log/nginx\ -v /zzz/mynginx/nginx/conf:/etc/nginx/conf.d\ -v /zzz/mynginx/nginx/nginx.conf:/etc/nginx/nginx/conf\ -v /zzz/mynginx/nginx/html:/lx/html\ nginx ######### 第一个-v:挂载日志目录 第二个-v:挂载配置目录 第三个-v:干脆把配置文件直接挂出来,不推荐 第四个-v:挂载项目目录 其他 1.修改配置文件后: dokcer exec -it docker_nginx nginx -s reload即可,或者dokcer exec -it docker_nginx bash进入docker容器,nginx -s reload即可。 涉及到命令 在docker容器中执行命令: dokcer exec -it docker_nginx 命令 或者dokcer exec -it docker_nginx bash 进入容器内执行。 验证nginx的配置文件和查看实际使用的配置文件的位置 nginx -t 查看容器信息 docker inspect 容器名 查看容器挂载情况 docker inspect 容器名 | grep Mounts -A 20 配置文件 /zzz/mynginx/nginx/conf/app.conf
server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { root /lx/html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。