docker 安装 nginx无坑版

news/2024/5/3 8:47:14/文章来源:https://blog.csdn.net/cm_pq/article/details/129546602

一. 拉取镜像

docker pull nginx

在这里插入图片描述

二. 创建挂载目录

mkdir -p /usr/local/nginx/conf
mkdir -p /usr/local/nginx/log
mkdir -p /usr/local/nginx/html

三. 从nginx容器里复制nginx的配置文件到主机里

  1. 创建个容器
docker run --name nginx -p 80:80 -d nginx
  1. 将容器内的配置文件复制给主机
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/
  1. 删除创建的镜像(它存在的目的只是为了复制里面文件)
docker stop nginx
docker rm  nginx

四. 开始创建容器

  1. 创建容器
docker run \
-p 80:80 \
--name nginx \
-v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /usr/local/nginx/log:/var/log/nginx \
-v /usr/local/nginx/html:/usr/share/nginx/html \
-d nginx

在这里插入图片描述

  1. 查看创建的容器
docker ps

在这里插入图片描述
可以看到已经创建成功.

五. 访问

在这里插入图片描述

六. 上传图片访问下

在这里插入图片描述

在这里插入图片描述

七. nginx 配置文件说明

# nginx配置文件存放的地方
cd /usr/local/nginx/conf/
# 查看nginx.conf
vi nginx.conf

在这里插入图片描述
可以看见,只要是/ect/nginx/conf.d文件夹下的所有后缀为.conf的都会加载进去,因为我们创建容器时将/ect/nginx/conf.d挂载在本机的/usr/local/nginx/conf/conf.d,因此只需要在本地的这个目录就可以了.

cd /usr/local/nginx/conf/conf.d

我们尝试创建一个后缀为.conf的文件

vi test.conf

然后在里面添加以下内容

server {listen       80;server_name  123.57.167.145; ## 重要!!!修改成你的外网 IP/域名location /static { root   /usr/share/nginx/html; ## 重要,指的是容器内部的路径index  pp.txt;}}

location /static {
root /usr/share/nginx/html; ## 重要,指的是容器内部的路径
index pp.txt;
}
这块注意,表示访问的目录为 root + location 即: /usr/share/nginx/html/static

  • location : 为路径/: 表示nginx的根目录,static表示nginx根目录下有一个static文件夹或文件.
  • root 指令来指定请求 URL 匹配成功后,Nginx 应该使用哪个目录作为根目录,默认根目录是 /usr/share/nginx/html(因为他有个默认配置文件),以方便返回请求的文件。可以修改根目录,如将根目录修改为/opt/,那么它将以opt为根目录开始查找.
  • index表示默认查找的文件,访问该文件夹,默认访问的文件.

现在我们重启这个nginx,以便配置文件生效

docker restart nginx

如果没有启动成功可以用以下命令查看日志

docker logs nginx

在这里插入图片描述
我们打开这个文件看看
在这里插入图片描述
少了个s,加上重新启动.

docker restart nginx

在html创建一个static文件夹并创建一个文本文件

cd /usr/local/nginx/html
# 创建文件夹
mkdir static
# 创建文件
vi pp.txt

随便添加些内容
在这里插入图片描述
访问 :ip /static
在这里插入图片描述
可以发现,已经有了

八. 遇到的问题以及解决办法

1. 配置文件修改了,却还是报404

  (1). 检查配置文件的配置路径是否写错

在这里插入图片描述

 (2).  查看日志
 cd   /usr/local/nginx/log

在这里插入图片描述

# 查看后50 行内容tail -n 50  error.log

在这里插入图片描述
可以发现
如果找不到文件,它会将找的文件路径标出,用来确定为什么是404

(3). 查看是否写的是容器内的路径.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_274003.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql之窗口函数练习

🍊今天复习一下mysql中的窗口函数,主要是通过几道练习题复习和加深一下对窗口函数的理解,对往期内容感兴趣的同学可以参考如下内容👇: 链接: 牛客SQL大厂真题——某音短视频.链接: 京东数据分析SQL面试题.链接: 百度用户增长SQL面…

Java实习生------MySQL10道面试题打卡

今日语录:“没有执行力,就没有竞争力 ”🌹 参考资料:图解MySQL、MySQL面试题 1、事务有哪些特性? 原子性: 一个事务中的所有操作,要么全部完成,要么全部不完成,不会出现…

Linux系统的安装以及参数配置 -- VMware(虚拟机)安装--ubuntu 20.04--VMware Tools工具安装

Linux系统的安装以及参数配置 PS:本文章为上课后整理笔记,作为以后学习工作的学习使用,也作为一次课程记录 一、Linux系统的安装常用方法 – 3种 1.直接Linux操作替换Windows – 专业Linux开发者 – 接受Linux相关软件的使用 2.安装双系统…

诗佛王维,眼前的苟且和远方的田野?

转自:媲美李白杜甫的诗人,他的人生可以复制_百科TA说 (baidu.com)他受到的羁绊,他做出的选择,提供了一种温润平和的过日子模式。大部分人无法决绝地脱离社会,隐遁起来,也无法在社会中不计底线,混…

JavaScript性能优化小窍门汇总(含实例)

在众多语言中,JavaScript已经占有重要的一席之地,利用JavaScript我们可以做很多事情 , 应用广泛。在web应用项目中,需要大量JavaScript的代码,将来也会越来越多。但是由于JavaScript是一个作为解释执行的语言&#xff…

Vue|样式绑定

class 与 style 是 HTML 元素的属性,用于设置元素的样式,我们可以用 v-bind 来设置样式属性。Vue.js v-bind 在处理 class 和 style 时, 专门增强了它。表达式的结果类型除了字符串之外,还可以是对象或数组。 文末名片获取源码 精…

根据平均分来划分等级-课后程序(JavaScript前端开发案例教程-黑马程序员编著-第2章-课后作业)

【案例2-1】 根据平均分来划分等级 一、案例描述 考核知识点 switch语句 练习目标 掌握switch语句的使用。 需求分析 switch语句也是多分支语句,针对某个表达式的值做出判断,来决定执行哪一段代码,本案例用于实现根据输入的小明同学的5门课…

百度CTO王海峰:全栈AI技术加持,打造新一代大语言模型文心一言

3月16日,百度在北京总部召开新闻发布会,百度创始人、董事长兼首席执行官李彦宏和百度首席技术官王海峰出席,李彦宏展示了新一代知识增强大语言模型文心一言在文学创作、商业文案创作、数理逻辑推算、中文理解、多模态生成五个使用场景中的综合…

【linux】管道pipe(),dup()系统调用

int pipe(int p[2]) 函数作用:生成一个管道,将管道读端的文件标识符存到p[0]中,将管道写端的文件标识符存到p[1]中。返回值:若成功返回0,失败返回-1 管道的理解 如图,当创建完管道以后的父进程fork出两个子…

Python中模块是个啥

昨天有粉丝问我说,啥是模块?经常听别人口中提这个词,但就是不懂。 模块可以认为是一盒主题积木,通过它可以拼出某一主题的东西。这与之前介绍的函数不同,一个函数相当于一块积木,而一个模块中可以包括很多函…

【C++进阶】unordered_set和unordered_map的介绍及使用

文章目录unordered系列容器介绍unordered_setunordered_set的模板参数unordered_set的函数接口介绍unordered_set的重要接口的使用构造函数增删查迭代器的使用unordered_mapunordered_map的模板参数unordered_map的函数接口介绍unordered_map的重要接口的使用增删查改迭代器的使…

EMQ 南洋万邦云边一体化方案:激活数据潜力,打造智慧工业园区

在工业 4.0 的浪潮之中,全球制造业再度振兴和崛起,并经历着前所未有从流程驱动转向数据驱动的变革。 近年来,数智化绿色工厂正在成为制造业竞争力的主要驱动力,依托物联网、工业互联网,人工智能等先进制造技术的深度融合,智能工厂变得更高效、更灵活,拥有更高的交付韧性和成本…

解忧杂货铺(四):Hightec生成HEX方法+小功能开启

目录 1、概述 2、 4.6.6的生成方法 3 、HighTEC4.9.3的生成.hex方法 4、MAP文件生成方法 5、elf生成 6、编译优化 7、输出编译过程中的详细信息 8、快速定位内存 1、概述 本文章纯属整合,大部分属于外链,补充一下,后面是自己记录的了…

由浅入深之字符串的算法题(vs: chatGPT做算法)

背景俗话说,温故而知新。chatGPT效果太惊艳了!简直就是碾压的效果。但是还要有希望,先拾取,再创新。先了解,再超越吧。ps: 再刷最后一遍算法题思路。顺便基于chatGPT3.5感受一下大模型的魔力。字符串基础C/C每个字符串…

编程题]组队竞赛(Java实现)

🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!人生格言:当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔🦾&am…

十七、队列

文章目录1、基本概念(队列实际上就是一个结构体,可以理解为就是一个数组)2、使用场景:任务间或任务与中断间传递数据3、使用队列的好处(1)休眠唤醒(2)提高CPU利用率4、队列的核心5、…

WebService简单入门

1. JAX-WS发布WebService 创建web工程 创建simple包,和server、client两个子包。正常情况下server和client应该是两个项目,这里我们只是演示效果,所以简化写到一个项目中: 1.1 创建服务类Server package simple.server;import ja…

JavaScript正则表达式知识拓展总结

JavaScript的正则表达式是前端中比较重要的部分,正则表达式主要用于字符串处理,表单验证等场合,实用高效。JavaScript中的正则表达式比起C#中的正则表达式要弱很多,但基本够用了。在js中定义正则表达式很简单,有两种方…

搭建SFTP服务安全共享文件,实现在外远程访问「内网穿透」

文章目录1.前言2.本地SFTP服务器搭建2.1.SFTP软件的下载和安装2.2.配置SFTP站点2.3.Cpolar下载和安装3.SFTP服务器的发布3.1.Cpolar云端设置3.2.Cpolar本地设置4.公网访问测试5.结语1.前言 现在的网络发达,个人电脑容量快速上升,想要保存的数据资料也越…

DRBG_InstantiateSeeded调试-1

public 参数解析: standardEKPolicy: 837197674484b3f81a90cc8d46a5d724fd52d76e06520b64f2a1da1b331469aa(32bytes) rawCmdBuf 命令数据: 800200000063000001314000000100000009400000090000010000000400000000003a0001000b000300720020837197674484b3f81a90cc8d46a5d724fd5…