一、查看可用的Nginx版本
访问Nginx镜像库地址:nginx Tags | Docker Hubhttps://hub.docker.com/_/nginx?tab=tags
二、 获取最新版的Nginx镜像
docker pull nginx:latest
三、查看本地镜像,看是否安装了Nginx
docker images
四、设置本地配置目录,设置nginx.conf
本地配置目录如下
/data/nginx
nginx.conf配置如下:
user root;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
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;
server {
listen 80;
tcp_nodelay on;
server_name localhost;
location / {
root /data/nginx/www/html/;
index index.html;
autoindex on;
}
}
}
五、创建容器
命令如下
docker run --name nginx -p 80:80 --restart=always --privileged=true -v /data/nginx/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/log:/var/log/nginx -v /data/nginx/www/html:/usr/share/nginx/html -d nginx
参数说明:
--name 容器的名字
-p 映射端口,将docker宿主机的80端口和容器的80端口进行绑定
-v 挂载文件用的,第一个-v 表示将你本地的nginx.conf覆盖你要起启动的容器的nginx.conf文件,
-v 表示将日志文件进行挂载,就是把nginx服务器的日志写到你docker宿主机
-v 表示将静态文件进行挂载
六、访问站点
http://localhost/
七、常见问题
7.1 Nginx出现403 forbidden
原因一、启动用户和Nginx工作用户不一致导致;
解决方法:需要到nginx.conf里设置user;
原因二、缺少index.html文件;
解决方法:在指定目录中配置即可;
原因三、权限问题,nginx下的web目录没有权限;
解决方法:sudo chmod -R 777 /www
7.2 启动Nginx提示nginx: [emerg] still could not bind()
解决方法:查看端口占有情况,关闭对应端口。