前端破圈使用Docker Nginx容器部署项目🏴‍☠️

简介: 前端破圈使用Docker Nginx容器部署项目🏴‍☠️

前言

继续 前端破圈 之旅,之前的文章里面实现了在 Docker 中开发前端项目,现在把开发的前端项目部署起来,能通过 IP 地址直接访问

前端破圈Docker for Win11项目不能访问🏴‍☠️

前端破圈用Docker开发项目🏴‍☠️

环境情况

由于是部署项目,这里使用在 Linux 系统中进行,不同版本表现可能不一致,这里先明确版本

系统版本

  • 系统版本:Ubuntu22.04.1 LTS
  • 虚拟机软件:VMware Workstation 17 Pro

Docker版本

  • Docker Engine: 24.0.5

实现思路

Ubuntu 系统上先安装 docker,然后安装 nginx 镜像,启动容器,准备好发布的前端项目,修改 nginx 容器配置,重启容器

实践

安装 docker

官方安装文档很详细,也很简单

Install Docker Engine on Ubuntu

练习自己看官方文档的能力,不管是中文的还是英文的,这是最原汁原味的一手资料,是官方或作者最原始的表达。可能英文文档前期刚开始看着有点痛苦,看多了其实就好了

安装完成后检查是否安装成功

$ docker -v
Docker version 24.0.5, build ced0996

注意!

安装成功,这时候输入其他命令默认是没有权限的

$ docker ps -a
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json?all=1": dial unix /var/run/docker.sock: connect: permission denied

安装后需要后续步骤,添加用户到 docker

$ sudo usermod -aG docker $USER

Linux post-installation steps for Docker Engine

获取 nginx 镜像

$ docker pull nginx

检查镜像是否获取成功,现在就是拉取到的最新版本的 nginx 镜像

$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
nginx        latest    eea7b3dcba7e   5 days ago      187MB

准备项目和配置文件

准备容器中部署的项目,这里使用一个 Vue3 初始化项目,自行打包 dist 即可

github.com/gywgithub/v…

运行 nginx 容器

docker run --name nginx-server -p 80:80 -v /home/w/Desktop/code:/workspace -d nginx

命令参数

  • --name: 容器名称
  • -p: 将系统的80端口映射到容器的80端口
  • -v: /home/w/Desktop/code 系统外部的代码目录,映射到容器内自定义目录 workspace
  • -d: 设置容器后台运行

检查服务

检查 nginx 容器服务是否正常运行成功,在浏览器中容器服务的地址 172.17.0.1,如下效果

image.png

172.17.0.1 地址是 docker nginx 服务的地址,这个地址可以通过 docker inspect 命令查看,Networks -> bridge -> Gateway 地址就是 nginx 服务的地址

image.png

修改容器中的 nginx.conf 文件

使用 vim 修改 nginx.conf 文件配置,添加 server 配置

image.png

server 里面配置了 80 端口,location / root 地址为 vue3-project-01 前端项目的 dist 目录

这时候刷新浏览器 172.17.0.1 地址,内容是没有变化的,因为 nginx 配置更新后需要重启服务

注意!

容器的 debian 系统中默认没有 vim,需要手动安装

如果不会使用 vim,可以换种实现思路,在运行容器时将容器外部 nginx.conf 文件映射容器内的 nginx.conf,多加一个 -v 参数即可,如

-v /ubuntu/自定义目录/nginx.conf:/etc/nginx/nginx.conf`

重启 nginx 服务

docker restart nginx-server

重启服务后,再次刷新浏览器,前端项目部署好了

image.png

目录
相关文章
|
5月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
2045 4
|
5月前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
241 5
|
5月前
|
存储 NoSQL Redis
手把手教你用 Docker 部署 Redis
Redis是高性能内存数据库,支持多种数据结构,适用于缓存、消息队列等场景。本文介绍如何通过Docker快速拉取轩辕镜像并部署Redis,涵盖快速启动、持久化存储及docker-compose配置,助力开发者高效搭建稳定服务。
1474 7
|
5月前
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
513 6
|
5月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
671 5
|
5月前
|
存储 搜索推荐 数据库
🚀 RAGFlow Docker 部署全流程教程
RAGFlow是开源的下一代RAG系统,融合向量数据库与大模型,支持全文检索、插件化引擎切换,适用于企业知识库、智能客服等场景。支持Docker一键部署,提供轻量与完整版本,助力高效搭建私有化AI问答平台。
3615 8