清华主页 - 清华新闻 - 综合时讯 - 正文

【Nginx】docker启动nginx的两种方式

获取Nginx镜像。

  1. 直接从Docker Hub拉Nginx镜像。
  2. Nginx镜像是通过Dockerfile构建的。

二者区别。

主要区别在于定制程度和施工过程的控制:

  1. Nginx镜像:

    • 简便:docker直接使用 pull Nginx命令可以快速拉取官方Nginx镜像。这个过程很简单,Nginx服务适用于快速部署标准。
    • 标准化:Nginx官方维护的镜像,确保环境的一致性和可靠性。该镜像经过官方优化和安全更新。
    • 限制:官方镜像提供了Nginx的标准安装,可能不包括特定的模块或配置。如果需要特殊配置或额外模块,容器启动后可能需要手动调整。
  2. Nginx镜像࿱通过Dockerfile构建Nginx镜像a;

    • 定制:通过编写Dockerfile,Nginx安装࿰可在施工过程中定制c;包括添加特定模块、配置文件、环境变量等。这为满足特定需求提供了灵活性。
    • 自动化:施工过程可以自动执行,Nginxx包括从基本镜像安装、应用程序配置文件,复制网站内容等。这使得整个部署过程可以重复和跟踪。
    • 维修:需要更新配置或添加功能,Dockerfile及相关文件可以直接修改c;然后重建镜像。这简化了更新和维护过程。
    • 建筑时间:根据Dockerfile的复杂性,构建镜像可能需要一些时间。频繁构建和测试,这可能会稍微增加开发周期。

总结,Nginx镜像适合快速部署和标准使用场景#xff0c;Nginx镜像是通过Dockerfile构建的,适用于需要特定配置、模块或自动化部署流程的场景。选择哪种方式取决于项目的具体需求和开发过程。

Nginx关键目录。

  1. 配置目录 (。/etc/nginx/。): nginx存储Nginx的主配置文件.conf等配置文件。这个目录通常包括:
    • nginx.conf:文件的主配置。
    • sites-available/:存储每个站点的配置文件,这些文件需要链接到sitess-enabledNginx可以读取/。
    • sites-enabled/:存储链接到sitess-available/中间站点配置文件的符号链接,Nginx将读取此处的配置来启动网站。
    • conf.d/:存储其他额外的配置文件,本目录下的配置文件将自动加载Nginx。
      - default.conf : 默认服务器配置文件。
      - *.conf:额外的配置文件。
  2. 日志目录 (。/var/log/nginx/。): 存储访问日志和错误日志。
    • access.log:默认访问日志文件,记录所有请求的详细信息。
    • error.log:默认错误日志文件,记录启动、操作错误和请求处理的问题。
  3. 网站内容目录 (。/usr/share/nginx/htm。l): 默认网站根目录,存储网站的静态文件,如HTML、CSS、JavaScript等。
  4. 可执行文件目录 (。/usr/sbin/nginx。): 存储Nginx的可执行文件。
  5. 客户端临时文件目录 (。/var/cache/nginx/。): 存储客户请求的临时文件,例如,用于缓存的文件。
  6. SSL证书目录: 存储SSL证书和私钥的目录,通常这个目录不是固定的,证书和私钥文件的路径需要在Nginx的SSL配置中指定。

直接从Docker Hub拉Nginx镜像。

  1. 最新的Nginx官方镜像:
docker。pull nginx。
  1. 如果你想拉特定版本的Nginx镜像,可通过指定标签完成。例如,要拉Nginx 1.19版镜像,可使用:
docker。pull nginx:1.19。
  1. 查看已下载的镜像。
docker。images。
  1. 配置Nginx。
    通常所有配置都应该通过Docker卷(volumes)或者绑定挂载(bind mounts)管理,为了便于配置的持久性和更新。
    因此,首先在宿主机上创建配置文件 ,然后将其挂载到nginx。
  • /home/nginx/nginx.conf。
worker_processes。        1。;# 工作过程数量󿀌CPU核心数通常设置为。events。 { 。root    /usr/share/nginx/html。;# 错误页面的根目录。 }。}。}。
  • /home/nginx/html/index.html。
my nginx test。hello nginx html。edit html。
  1. 启动Nginx。
docker。run。 --name。my-nginx-test3。  -p。80。:80。         -v。/home/nginx/nginx.conf:/etc/nginx/nginx.conf。             -v。/home/nginx/html:/usr/share/nginx/html。          -d。nginx。

启动容器:docker run。
–name: 为容器指定一个唯一的名称,容器࿰可以通过名称引用c;而不是使用容器的ID。
-p:映射端口󿀌[宿主机端口(#xfff09访问端口;]:[nginx容器中listen的端口]。
-v :绑定吊载配置。 [宿主机路径]:[容器内路径]。
-d:后台运行󿀌返回成功操作的镜像id。

  1. 检查操作容器。
docker。ps。

在这里插入图片描述

  1. 重新启动操作后修改配置文件生效。
  • 重载Nginx配置:
docker。exec。<容器name。>nginx。 -s。reload。
  • 重启Nginx容器:
docker。restart nginx。
  1. ip࿱输入浏览器a;端口。
    在这里插入图片描述

通过Dockerfile构建Nginx镜像,然后拉取。

注意上下文路径的实施。

  1. 创建Dockerfile:创建一个Dockerfile来构建你的Nginx镜像。
# 使用Nginx官方镜像作为基本镜像。FROM nginx:alpine。# dist目录(包括index.#xff09html等静态文件;静态文件目录复制到Nginx容器。# ./dist相对执行构建上下文路径。COPY ./dist/ /usr/share/nginx/html/。# 将自定义的Nginx配置文件复制到Nginx容器(本步骤将修改nginx完整的主配置文件)COPY nginx/nginx.conf /etc/nginx/nginx.conf。
  1. 准备Nginx配置文件༈nginx.conf):创建Nginx配置文件,定义如何为您的静态文件服务。
    同上面的 /home/nginx/nginx.conf 文件。
  2. 准备dist//index.html文件。
dockerfile nginx test。hello use dockerfile nginx html。
  1. Docker容器的构建和运行#xff1a;使用Dockerfile和Nginx配置文件构建Docker镜像,并运行容器。
  • 构建Docker镜像。

    docker。build。 -t。my-dockerfile-nginx。 -f。Dockerfile。 .。

    -t: 选项用于指定镜像的名称和标签。
    . :最后一点意味着当前目录是构建上下文。
    -f:指定dockerfile的位置,目录在当前执行时不需要指定。

  • 操作Docker容器,9999端口访问开放。

    docker。run。 --name。dockerfile-nginx。 -p。9999。:80。 -d。my-dockerfile-nginx。
  1. ip࿱输入浏览器a;端口。
    在这里插入图片描述

2025-06-24 11:39:51

相关新闻

清华大学新闻中心版权所有,清华大学新闻网编辑部维护,电子信箱: news@tsinghua.edu.cn
Copyright 2001-2020 news.tsinghua.edu.cn. All rights reserved.