SSF0SSF0
首页
前端
  • Node
  • Go
  • C#
  • MySql
  • Bash
  • Git
  • Docker
  • VuePress
  • CI/CD
  • 服务器
  • 网站
  • 学习资料
  • 软件
Timeline
Github
标签
分类
首页
前端
  • Node
  • Go
  • C#
  • MySql
  • Bash
  • Git
  • Docker
  • VuePress
  • CI/CD
  • 服务器
  • 网站
  • 学习资料
  • 软件
Timeline
Github
标签
分类
  • Bash

    • Bash 获取路径在不同类型电脑的区别
  • Git

    • Git 使用 ssh 与 https 的区别
    • Git 回滚、重置与变基
    • 文件名大小写发生变化的坑
    • Git 提交信息规范解读与实践指南
    • Git 历史邮箱统一 + 推送 GitHub 后的远程分支处理指南
  • Docker

    • Docker 命令大全
    • nginx 镜像部署静态文件
    • Docker 运行命令说明
    • 使用 node 镜像运行本地项目
    • 挂载和卷的区别
    • Docker 打包多平台镜像
    • Docker 使用 mysql
    • Docker 容器网络访问问题总结
  • VuePress

    • 使用 VuePress 搭建个人博客概括
  • CI/CD

    • blog 使用 Github-Actions 部署 docker 服务器
  • 服务器

    • 腾讯云使用 ssh 连接服务器(Linux 实例)
    • ssl 证书安装到 docker 服务器
    • 操作系统与架构
    • ssh 连接时长问题
  • 掌握 hosts 文件:本地开发、域名重定向与回调处理完全指南
  • Cloudflare DNS与代理:完全指南

nginx 镜像部署静态文件

1.window 电脑部署

使用镜像构建文件,运行容器

  1. 构建命令
docker build -t [container name]:版本 .
  • 配置必要文件 Dockerfile

    # 使用官方的 Nginx 镜像作为基础镜像
    FROM nginx:latest
    
    # 复制自定义的 Nginx 配置文件到容器中
    COPY nginx.conf /etc/nginx/nginx.conf
    
    # 复制网站内容到 Nginx 默认的网页目录
    COPY dist /usr/share/nginx/html  # dist 为本地文件夹,如果是本地项目则使用 . 。
    
    # 暴露 Nginx 端口,要与 nginx.conf 配置的端口一致
    EXPOSE 8888
    
    # 启动 Nginx
    CMD ["nginx", "-g", "daemon off;"]

    注意 nginx 如果不配置 nginx.conf,默认启动的是 80 端口,如果配置了 nginx.conf,则以 nginx.conf 配置的端口为准。nginx 配置可参考 ssl 正式安装

  • 配置 nginx.conf 文件

        server {
          listen 8888;
          server_name localhost;
    
          location / {
              root /usr/share/nginx/html;
              index index.html index.htm;
          }
      }
  • 如果没有特殊的配置,则不需要配置 nginx.conf 文件,直接使用默认的 80 端口。

      # 使用官方的 Nginx 镜像作为基础镜像
      FROM nginx:latest
    
      # 复制网站内容到 Nginx 默认的网页目录
      COPY . /usr/share/nginx/html
    
      # 暴露 Nginx 端口
      EXPOSE 80
    
      # 启动 Nginx
      CMD ["nginx", "-g", "daemon off;"]
  1. 运行容器
docker run -p 宿主机端口:docker镜像开放端口 --name images:版本
  1. 更新问题

    • 此时修改文件后是不会同步更新的

    • 需要编写 docker-compose.yml 文件

      version: "3"
      services:
        web:
          image: nginx
          volumes:
            - .:/usr/share/nginx/html
          ports:
            - "300:80"
    • 控制台输入 docker-compose up -d 进行更新

直接运行容器 依赖于 nginx 镜像

docker run -di --name {contanier name} -p 宿主机端口:docker镜像开放端口 -v .:/usr/share/nginx/html:ro nginx
  • -d:以后台模式运行容器。

  • -i:保持标准输入打开,即使没有附加。

  • --name mynginx:为容器指定一个名称 mynginx。

  • -p 90:80:端口号映射 90 自定义为外部访问端口:80 为 nginx 容器对外暴露的端口。

  • -v 目录挂载 冒号前为 外部目录,冒号后为 容器内目录;相当于外部目录中的内容会映射同步到容器内。

  • 会出现的问题

    1. docker: Error response from daemon: error while creating mount source path '/run/desktop/mnt/host/c/project/h5Guide-test': mkdir /run/desktop/mnt/host/c: file exists.
      路径无权限访问

      • 解决办法 (以下是其一)
        确保 Docker Desktop 的文件共享设置中包含你的项目目录。
        打开 Docker Desktop。
        进入 Settings -> Resources -> File Sharing。
        确保 C:\project\h5Guide-test 或其父目录在共享路径列表中。如果没有,添加它。

2.mos 电脑部署

  1. 大致一样 window 易出现路径无权限访问
最后更新时间:
贡献者: 何风顺
上一页
Docker 命令大全
下一页
Docker 运行命令说明