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

Docker 前端镜像容器部署指南

1. 编写 Dockerfile 文件

# 使用轻量级的 Nginx Alpine 作为基础镜像
FROM nginx:alpine# 设置工作目录
WORKDIR /usr/share/nginx/html# 删除默认的 Nginx 静态文件
RUN rm -rf ./*# 复制本地 dist 目录下的文件到容器中
COPY ./dist /usr/share/nginx/html# 暴露容器端口
EXPOSE 80

2. 构建 Docker 镜像

docker build -t images-name:tag .
参数/选项说明
-t为镜像指定名称和标签
images-name自定义的镜像名称
:tag镜像标签(如 :v1.0, :latest)
.指定 Dockerfile 所在目录(当前目录)

3. 运行容器

docker run -d -p 21002:80 --name container-name images-name:tag
参数/选项说明
-d后台运行容器(detached 模式)
-p端口映射(主机端口:容器端口)
21002:80将主机的 21002 端口映射到容器的 80 端口
--name为容器指定一个名称
container-name自定义的容器名称
images-name:tag要运行的镜像名称和标签

如果不指定容器名称,则--name container-name可以去掉

4. 常用管理命令

# 查看运行中的容器
docker ps# 查看所有容器(包括停止的)
docker ps -a# 停止容器
docker stop container-name# 启动已停止的容器
docker start container-name# 删除容器
docker rm container-name# 删除镜像
docker rmi images-name:tag# 查看容器日志
docker logs container-name

5. 最佳实践建议

  1. 多阶段构建:对于复杂项目,考虑使用多阶段构建减小镜像体积
  2. .dockerignore:创建 .dockerignore 文件排除不必要的文件
  3. 版本标签:避免使用 latest 标签,推荐使用语义化版本
  4. 健康检查:添加 HEALTHCHECK 指令确保应用健康
  5. 非 root 用户:考虑使用非 root 用户运行容器增强安全性

6. 多阶段构建示例(适用于复杂前端项目)

# 构建阶段
FROM node:alpine as builder
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build# 生产阶段
FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
http://www.lryc.cn/news/2391985.html

相关文章:

  • OpenAI大模型不听人类指令事件的技术分析与安全影响
  • 图神经网络实战——图的可视化
  • 自动化安全脚本学习
  • github公开项目爬取
  • 用豆包写单元测试
  • 传输层协议TCP(上)
  • Windows下安装并使用kubectl查看K8S日志
  • Hive 分区详解:从基础概念到实战应用
  • Android studio进阶开发(六)--如何用真机通过okhttp连接服务器
  • 如何解决网站服务器的异常问题?
  • WeakAuras Lua Script [ICC BOSS 11 - Sindragosa]
  • 用户界面禁忌——基础原则
  • 电脑开机后出现bootmgr is conmpressed原因及解决方法
  • vite配置一个css插件
  • React+Taro 微信小程序做一个页面,背景图需贴手机屏幕最上边覆盖展示
  • Spring框架学习day4--Spring集成Mybatis(IOC)
  • 太阳系运行模拟程序-html动画
  • 【C++ Qt】容器类(GroupBox、TabWidget)内附思维导图 通俗易懂
  • SOC-ESP32S3部分:18-串口
  • CSS 样式表的四种应用方式及css注释的应用小结
  • 五、web安全--XSS漏洞(2)--XSS相关payload
  • AI架构师的新工具箱:ChatGPT、Copilot、AutoML、模型服务平台
  • 关于智能体接入后端,在Apifox能够传参数给智能体的测试
  • 有铜半孔工艺的制造难点与工艺优化
  • python分步合并处理excel数据
  • MC0309魔法项链
  • 为 Ubuntu 安装的软件创建桌面图标
  • uni-app 中开发问题汇总
  • https下git拉取gitlab仓库源码
  • 距离计算范围查找距离排序