nginx 镜像部署静态文件
1.window 电脑部署
使用镜像构建文件,运行容器
- 构建命令
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;"]
- 运行容器
docker run -p 宿主机端口:docker镜像开放端口 --name images:版本
更新问题
此时修改文件后是不会同步更新的
需要编写 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 目录挂载 冒号前为 外部目录,冒号后为 容器内目录;相当于外部目录中的内容会映射同步到容器内。
会出现的问题
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 电脑部署
- 大致一样 window 易出现路径无权限访问