一、docker下载最新版nginx镜像
docker pull nginx
下载完成后查看下载的nginx镜像,docker images
二、在宿主机上创建nginx的conf、log、html挂载目录
mkdir -p /usr/local/nginx/conf
mkdir -p /usr/local/nginx/log
mkdir -p /usr/local/nginx/html
三、启动容器,将容器内的文件复制到宿主机
docker run -d -p 80:80 --name nginx nginx:latest
使用docker ps命令查看启动的容器列表
nginx服务启动以后,将容器内的文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /usr/local/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /usr/local/nginx/conf/conf.d
docker cp nginx:/usr/share/nginx/html /usr/local/nginx/
四、删除nginx容器,重新创建nginx容器并启动
停止容器docker stop nginx
删除容器docker rm nginx
重启创建和启动nginx容器
docker run --name nginx -p 80:80 \
-v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/nginx/html/:/usr/share/nginx/html/ \
-v /usr/local/nginx/log:/var/log/nginx \
-v /usr/local/nginx/conf/conf.d/:/etc/nginx/conf.d/ \
--restart=always --privileged=true -d nginx
五、查看运行的容器
打开浏览器,访问地址:http://你的nginx宿主机外网IP,我的nginx宿主机IP是192.168.0.2,所以我访问:http://92.168.0.2
此时表示nginx安装完成,如果无法访问,请检查防火墙,我的是测试环境,我是直接关闭了防火墙,现实环境不能关闭防火墙,访问不了的时候,记得配置防火墙进行端口放行。
六、linux常用操作防火墙命令
- systemctl status firewalld 查看防火墙状态
- systemctl stop firewalld 关闭防火墙
- systemctl start firewalld 开启防火墙
- firewall-cmd --list-all 查看防火墙开放的端口
- sudo firewall-cmd --add-port=8080/tcp --permanent 添加某一个端口,例如添加8080端口,加上
--permanent
永久生效,没有此参数重启后失效 - firewall-cmd --reload 重启防火墙,当添加了新的端口后,一定要重启防火墙,否则不生效
- firewall-cmd --zone=public --query-port=3306/tcp 查看某个端口是否被开放,例如查询3306端口是否被开放放行
- firewall-cmd --zone=public --remove-port=3306/tcp --permanent 关闭端口,例如关闭3306端口放行
七、(可选)开启nignx文件压缩,在/usr/local/nginx/conf/nginx.conf文件中加入以下内容:
gzip on;
gzip_min_length 1k;
gzip_comp_level 9;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
加完以后保存退出vi编辑。然后重启nginx容器,docker restart nginx即可生效。
八、(可选)nginx配置代理访问前端项目index,和后端接口代理配置
进入/usr/local/nginx/conf/conf.d目录,编辑default.conf文件,加入以下内容:
保存退出,然后重启nginx容器docker restart nginx