将web如vue等项目部署到宝塔docker镜像中,以便能在任意浏览器访问

一、准备工作

仅需确认宝塔面板已经有docker镜像容器

目前新版宝塔面板都已经内置了docker功能模块,如下图:

image-20240116171510221

二、具体步骤

1、从已经推送的镜像中拉取镜像

如果你用的是docker desktop等工具制作的镜像,并且也已经推送到了https://hub.docker.com/中,即可以在该网站搜索看到对应的镜像,就可以在宝塔docker-镜像-从仓库拉取-官方库-输入镜像名拉取到到宝塔镜像列表中。如下图。

docker官网:

image-20240116173404523

宝塔面板拉取镜像:

image-20240116173458316

2、切换到宝塔-容器,添加容器

镜像是放在容器中运行的,所以我们还需要添加一个容器。

添加容器的界面中输入容器名字(任意输入都可以),镜像选择刚刚导入的要部署的镜像。

添加端口,容器端口写80(镜像端口),服务器端口即你宝塔面板的ip的端口,到时用这个来访问该容器,比如你的服务器ip为:172.10.12.19,那么到时访问该web项目的镜像url就为:172.10.12.19:7890

image-20240116175233198

启动命令如果没有特殊参数,可留空不填

3、启动容器

添加后,会自动启动容器,可以看到启动状态,你也可以手动启动,如果启动失败,可以查看右侧的日志。

image-20240116180109066

4、将刚刚的端口号添加到防火墙白名单

有两个地方都需要添加,宝塔防火墙和对应的云服务防火墙,比如我的服务器是腾讯云的,就需要到腾讯云去添加。

image-20240116180303697

image-20240116180326162

5、访问部署好的项目

接下来就可以直接使用你的服务器IP+端口来访问部署好的镜像项目了。

比如上文我们添加好的url为:172.10.12.19:7890 (虚拟)

最终效果如下:

image-20240116180508008

参考资料

如果你还不知道如何从0开始制作镜像和发布镜像,请参考下面这篇文章:

WEB前端有必要学会docker吗?0基础-45分钟带你学会(包含视频笔记案例源代码)链接见下方:

https://blog.youkuaiyun.com/imqdcn/article/details/128723543https://blog.youkuaiyun.com/imqdcn/article/details/128723543

如果你在web前端开发、面试、前端学习路线有困难可以加我V:imqdcnn。免费答疑,行业深潜多年的技术牛人帮你解决bug。

加我微信可提供web前端开发,网站开发、技术咨询、答疑、直播讲座等服务

祝你能成为一名优秀的WEB前端开发工程师!

### 将Vue和Spring Boot应用通过Docker部署到阿里云服务器 #### 准备工作 为了成功完成此过程,需准备如下资源: - **阿里云服务器**一台作为运行环境的基础[^1]。 - 安装并配置好`Xshell`和`Xftp`用于远程连接和文件传输工具[^3]。 #### 构建与打包应用程序 对于前端部分即Vue项目,在开发完成后应构建生产版本。进入项目的根目录执行命令来生成静态资源文件夹`dist`: ```bash npm run build ``` 针对后端即Spring Boot程序,则要确保其能够被打包成一个可独立运行的JAR文件。通常情况下是在IDE内或是通过Maven/Gradle插件实现自动化打包流程。 #### Dockerfile编写 ##### Spring Boot 应用的 `Dockerfile` 在Spring Boot项目的根路径下创建名为`Dockerfile`的文本文件,并写入以下内容以便于将其构建成Docker镜像: ```dockerfile FROM openjdk:8-jdk-alpine VOLUME /tmp ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] ``` ##### Vue 应用的 `Dockerfile` 同样地,在Vue项目的根目录建立另一个`Dockerfile`,用来定义如何将编译后的前端页面封装至Nginx服务之中: ```dockerfile # 使用官方Node.js基础映像构建阶段 FROM node:lts as builder WORKDIR /app COPY package*.json ./ RUN npm install --silent && mv node_modules ../ COPY . . RUN npm run build # 利用官方Nginx映像发布阶段 FROM nginx:alpine EXPOSE 80 COPY ./nginx.conf /etc/nginx/conf.d/default.conf COPY --from=builder /app/dist /usr/share/nginx/html CMD ["nginx", "-g", "daemon off;"] ``` 这里假设已经有一个自定义的`nginx.conf`位于项目根目录中,它指定了如何处理HTTP请求并将它们路由给正确的HTML/CSS/JS资产。 #### 编写 `docker-compose.yml` 为了让前后端可以更便捷地一起启动起来,推荐使用Docker Compose来进行多容器协调管理。下面是一个简单的例子说明怎样设置这个YAML格式的组合描述文档: ```yaml version: '3' services: backend: image: your-backend-image-name ports: - "8080:8080" environment: SPRING_DATASOURCE_URL: jdbc:mysql://db:3306/your_db_name?useSSL=false&serverTimezone=UTC SPRING_DATASOURCE_USERNAME: root SPRING_DATASOURCE_PASSWORD: password depends_on: - db frontend: image: your-frontend-image-name ports: - "80:80" db: image: mysql:latest environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: your_db_name ``` 请注意替换上述模板中的占位符(如`your-backend-image-name`, `your-db-name`等),使其匹配实际的应用名称和服务细节。 #### 推送镜像到仓库 & 远程部署 一旦所有的本地测试都顺利完成之后,就可以考虑把制作好的Docker镜像推送到公共或私有的注册中心去了。这一步骤允许其他机器轻松下载所需组件而无需重复整个构建过程。接着借助诸如Ansible、Terraform之类的基础设施即代码(IaC)工具或者是手动方式登录到目标阿里云实例上去拉取这些最新的镜像并按照之前设定好的compose文件启动相应的服务即可[^2]。 #### 使用宝塔面板简化操作 如果倾向于图形界面的操作体验的话,那么安装了宝塔Linux面板将会是个不错的选择。该平台不仅提供了直观易懂的Web UI让用户能快速上手各种运维任务,而且还集成了对Docker的支持功能模块——比如可以直接在线查找并加载官方提供的MySQL, Redis等各种常用数据库系统的最新稳定版镜像;亦可通过上传提前准备完毕的`.tar.gz`压缩包形式导入私人定制化的web应用镜像[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值