当前位置: 首页 > article >正文

Docker安装Nginx

前提:Docker已安装好,本人使用的为自带docker的云服务器,docker常用命令已掌握,yjj为在根目录创建的一个文件夹,可自行修改对应的目录。

1、安装镜像,可去dockerhub上面找,一般都是组件名称。dockerhub地址

//拉取最新
docker pull nginx 
//指定版本
docker pull nginx:xxx 

在这里插入图片描述

可通过命令进行查看已拉取成功:
在这里插入图片描述

2、创建Nginx配置文件

1)Nginx容器的目录结构:
Nginx容器在启动时,其内部会包含一些默认的目录和文件结构,但通常不会包含nginx.conf这个具体的配置文件。容器内部的/etc/nginx目录是存在的,但默认情况下并不包含nginx.conf文件。如果此时尝试将外部的一个空目录或不存在的文件挂载到容器的/etc/nginx/nginx.conf位置,Docker可能会将这个挂载点当作一个目录来处理,而不是一个文件。

2)Docker的挂载机制:
Docker在挂载文件或目录时,会遵循一些特定的规则。如果挂载的目标位置在容器内部是一个不存在的文件,但指定的源位置是一个目录,那么Docker会创建这个目标文件为一个目录,而不是一个文件。这显然与我们的期望不符,因为我们通常希望将配置文件作为一个文件而不是目录挂载到容器中。

3)容器化应用的最佳实践:
在容器化应用中,为了保持容器的轻量性和可移植性,通常建议将配置信息外部化,并通过环境变量或挂载文件的方式传递给容器。这样做的好处是,可以方便地修改配置而无需重新构建镜像,同时也便于在不同环境之间迁移和部署。

4)Nginx容器的特殊处理:
由于Nginx是一个高性能的HTTP和反向代理web服务器,其配置文件nginx.conf对于服务器的运行至关重要。因此,在启动Nginx容器之前,我们需要确保配置文件已经正确创建并挂载到容器中。否则,Nginx可能无法正确启动或运行。

因此创建挂载目录:
在这里插入图片描述

生成容器并将容器内的相关文件和文件夹复制到宿主机:
在这里插入图片描述

在这里插入图片描述

3、创建容器

首先删掉之前创建的容器:
在这里插入图片描述

// 关闭该容器
docker stop nginx
// 删除该容器
docker rm nginx

运行以下命令:
在这里插入图片描述

docker run \
-p 9002:80 \
--name nginx \
-v /yjj/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /yjj/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /yjj/nginx/log:/var/log/nginx \
-v /yjj/nginx/html:/usr/share/nginx/html \
-d nginx:latest

4、访问

检查防火墙是否开启,是否开启指定端口
在这里插入图片描述

1)直接关闭防火墙
在这里插入图片描述

2)开着防火墙,开放指定端口
在这里插入图片描述

最后访问成功拉!
在这里插入图片描述


http://www.kler.cn/news/342904.html

相关文章:

  • 在python中如何判断回文串(一)?
  • 设计模式01-类图及设计原理(Java)
  • Golang | Leetcode Golang题解之第456题132模式
  • 为何一个简单的线上商城 两年销售7000多万?
  • 如何在uniAPP中编写页面
  • SFML库环境配置
  • Spring 如何加载多份配置文件
  • C++ | Leetcode C++题解之第468题验证IP地址
  • 奥普思凯 ——AI 扫描仪引领办公新潮流
  • MFC的.rc 和.rc2文件【常见问题】
  • C#使用ITextSharp生成PDF文件实例详解
  • 【C++】C++入门基础
  • leetcode链表(一)-移除链表元素
  • html中<div>标签设置宽度和高度都有哪些方法
  • <Project-8.1 pdf2tx-MM> Python Flask 用浏览器翻译PDF内容 2个翻译引擎 繁简中文结果 从P8更改
  • 【SQL】Windows MySQL 服务查询启动停止自启动(保姆级)
  • Leetcode 数组中第 k 大的元素
  • 「自动化测试」Selenium 的使用
  • C++设计模式——代理模式
  • 论文阅读:Split-Aperture 2-in-1 Computational Cameras (二)