手把手教你通过 Docker 部署前后端分离项目(亲测可用)

这篇具有很好参考价值的文章主要介绍了手把手教你通过 Docker 部署前后端分离项目(亲测可用)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 安装Docker

  • 安装Nginx

  • 安装Mysql

  • 部署SpringBoot项目

  • 部署Vue项目

一、安装Docker

1、安装:

yum install docker 

2、启动/停止/重启docker服务

service docker start 
service docker stop 
service docker restart 

3、查看docker版本信息

docker version

手把手教你通过 Docker 部署前后端分离项目(亲测可用)

4、运行helloword,因为不存在此镜像,docker会自动下载运行本镜像

docker run hello-world

手把手教你通过 Docker 部署前后端分离项目(亲测可用)

5、查看所有docker镜像

docker images

手把手教你通过 Docker 部署前后端分离项目(亲测可用)

二、安装Nginx

1、拉取Nginx镜像文件

docker pull nginx

手把手教你通过 Docker 部署前后端分离项目(亲测可用)

2、查看下载好的镜像文件

docker images

手把手教你通过 Docker 部署前后端分离项目(亲测可用)

3、创建并运行Nginx容器

docker run -d --name nginx01 -p 3344:80 nginx
命令详解:
# docker run 启动一个镜像
# -d 表示后台允许
# --name nginx01  表示为当前容器起一个别名
# -p 3344:80 表示将本机的3344端口映射到nginx镜像的80端口

4、查看正在运行的容器

docker ps

手把手教你通过 Docker 部署前后端分离项目(亲测可用)

5、查看Nginx是否部署成功

curl localhost:3344

手把手教你通过 Docker 部署前后端分离项目(亲测可用)

拓展

1、进入Nginx容器当中

docker exec -it nginx01 /bin/bash
命令详解:
# docker exec 在运行的容器中执行命令
# -i 以交互模式运行容器,通常与 -t 同时使用;例如-it
# -t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;例如-it
# nginx01 容器名
# /bin/bash 其实就是表示载入容器后运行bash(命令语言解释程序), 因为docker中必须要保持一个进程(运行的程序)的运行,要不然整个容器就会退出,所以说,bash就担任起了docker中运行的那个进程的角色!
#而/bin/bash则是bash在linux下的位置

2、在容器中查询出nginx的相关配置文件存放位置

whereis nginx

3、退出容器,回到本地linux系统

exit

4、停止并移除Nginx容器

docker stop bedfd2a72585 #停止容器
docker rm bedfd2a72585 #移除容器
# bedfd2a72585表示容器的ID,即:CONTAINER ID

5、本地创建管理目录

mkdir -p /data/nginx
mkdir -p /data/nginx/www 
mkdir -p /data/nginx/conf
mkdir -p /data/nginx/logs

6、将容器中的相应文件copy到刚创建的管理目录中

docker cp bedfd2a72585:/etc/nginx/nginx.conf /data/nginx/
docker cp bedfd2a72585:/etc/nginx/conf.d /data/nginx/conf/
docker cp bedfd2a72585:/usr/share/nginx/html/ /data/nginx/www/
docker cp bedfd2a72585:/var/log/nginx/ /data/nginx/logs/

注:docker cp bedfd2a72585中的 "bedfd2a72585" 为容器ID(docker ps可查看)

7、再次启动容器并作目录挂载

docker run --name nginx -p 80:80 -v /data/nginx/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/www/:/usr/share/nginx/html/ -v /data/nginx/logs/:/var/log/nginx/ -v /data/nginx/conf/:/etc/nginx/conf.d --privileged=true -d nginx

ps:-p 80:80 端口进行映射,将本地 80端口映射到容器内部的 80 端口。

三、安装Mysql

1、下拉mysql镜像文件

docker pull mysql  #默认最新版本
 
docker pull mysql:xxx  #指定版本号

手把手教你通过 Docker 部署前后端分离项目(亲测可用)

2、查看当前镜像

docker images

手把手教你通过 Docker 部署前后端分离项目(亲测可用)

3、启动mysql容器

第一种:

docker run --name mysql01 -d -p 3310:3306 -e MYSQL_ROOT_PASSWORD=root mysql

命令详解:

# --name 自定义容器名称
# -d 后台运行
# -p 指定映射的端口号
# -e MYSQL_ROOT_PASSWORD=root 数据库密钥

第二种:

docker run --restart=always --privileged=true -d -v /home/mysql/data:/var/lib/mysql -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/my.cnf:/etc/mysql/my.cnf -p 3311:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=root mysql
  • --restart=always 代表开启启动

  • --privileged=true 代表进入容器内部为管理员身份

  • -d 表示后台运行容器 并返回容器Id

  • -v 把mysql产生的数据同步到本地 防止数据丢失

  • -e 容器传参  设置mysql的初始密码

4、查看正在运行的容器

docker ps

手把手教你通过 Docker 部署前后端分离项目(亲测可用)

5、测试数据库连接

手把手教你通过 Docker 部署前后端分离项目(亲测可用)

手把手教你通过 Docker 部署前后端分离项目(亲测可用)

四、部署SpringBoot项目

1、整合后端成Jar包并编写Dockerfile文件

手把手教你通过 Docker 部署前后端分离项目(亲测可用)

2、Dockerfile内容详解

FROM java:8  #工程java版本
 
COPY *.jar /app.jar  #将所有的jar包整合为app.jar
 
EXPOSE 9099  #暴露后端端口号
 
ENTRYPOINT ["java","-jar","app.jar"]  #执行jar包

3、将文件上传到Linux服务器上面,必须放在同级目录一起!

手把手教你通过 Docker 部署前后端分离项目(亲测可用)

4、构建镜像

docker build -t api .  #点千万别漏了,这里取名镜像为api,可以随便取名!

手把手教你通过 Docker 部署前后端分离项目(亲测可用)

5、查看当前镜像

docker images

手把手教你通过 Docker 部署前后端分离项目(亲测可用)

6、创建一个新的容器并运行

docker run -d -p 9099:9099 --name httapi api 
#将9099端口映射到9099端口,端口记得放开
#httapi为自定义容器名字
#api是镜像名字

7、查看正在运行的容器

docker ps

手把手教你通过 Docker 部署前后端分离项目(亲测可用)

8、使用postman测试接口

手把手教你通过 Docker 部署前后端分离项目(亲测可用)

五、部署Vue项目

1、打包Vue工程并同时编写default.conf文件和Dockerfile文件

手把手教你通过 Docker 部署前后端分离项目(亲测可用)

2、default.conf文件和Dockerfile文件详细

  • default.conf配置

server {
    listen       80;
    server_name  ip地址; # 修改为docker服务宿主机的ip
 
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html =404;
    }
     location /api {
      proxy_pass http://ip地址:端口号/;
    }
 
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}
  • Dockerfile配置

# 基础镜像使用Nginx
FROM nginx
# 作者
MAINTAINER htt
# 添加时区环境变量,亚洲,上海
ENV TimeZone=Asia/Shanghai
# 将前端dist文件中的内容复制到nginx目录
COPY dist  /usr/share/nginx/html/
# 用本地的nginx配置文件覆盖镜像的Nginx配置
COPY default.conf /etc/nginx/conf.d
# 暴露端口
EXPOSE 80

3、上传这三个文件到Linux服务器的同一个文件夹当中,务必放在一起!

手把手教你通过 Docker 部署前后端分离项目(亲测可用)

4、构建镜像

docker build -t vue . #点千万别漏了,这里取名镜像为vue,可以随便取名!

手把手教你通过 Docker 部署前后端分离项目(亲测可用)

5、查看当前镜像

docker images

手把手教你通过 Docker 部署前后端分离项目(亲测可用)

6、创建一个新的容器并运行

docker run -d -p 8088:80 --name httvue vue 
#将8088端口映射到80端口,端口记得放开
#httvue为自定义容器名字
#vue是镜像名字

7、查看正在运行的容器

docker ps

手把手教你通过 Docker 部署前后端分离项目(亲测可用)

8、访问前端页面并测试接口

手把手教你通过 Docker 部署前后端分离项目(亲测可用)文章来源地址https://www.toymoban.com/news/detail-423345.html

到了这里,关于手把手教你通过 Docker 部署前后端分离项目(亲测可用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手把手教你用 Docker 部署 Vue3 项目

    用 docker 可以帮我们快速部署前端项目,本文介绍了如何用 docker 快速部署 vue3 项目。请准备好一台云服务器并安装好 docker,然后开始阅读本教程。 执行 npm run build 打包后项目目录中会多出一个 dist 文件夹 利用 docker 拉取 nginx 镜像 在服务器中创建工作目录,这里我放在 /ho

    2024年02月05日
    浏览(49)
  • 【零基础】手把手教你使用Docker部署Springboot项目(详细版)

    ​  本篇文章适合刚学完Docker,想要部署Springboot项目的小白;当然,如果你还没有学习Docker,只要严格按照本篇文章的步骤执行,理论上也是可以完成部署的。   我接下来部署的项目都是以一台全新Liunx服务器视角来操作,该服务器上jdk,mysql和Docker都还没有安装。 ​

    2024年01月20日
    浏览(60)
  • (一) Docker Hub网站仓库国内进不去了?手把手教你通过GitHub项目构建自己的镜像仓库站!

    目录 (一) 问题背景 (二) 搭建阿里云ARC镜像仓库站对接GitHub项目构建镜像 (1)添加项目分支  (2)创建阿里云ARC镜像仓库站 (3) 设置更改GitHub项目内容,触发阿里云镜像构建 ①Brash触发构建 ②Tag模式触发: (三) 最后的最后     今天我本来准备做 kube-state-metrics 的项目案列的时候,

    2024年02月07日
    浏览(57)
  • 手把手教你如何使用Docker

    我们在公司开发中,会有开发环境,测试环境,上线环境, 比如我们开发人员开发好了一个项目,在开发环境中运行正常,但测试人员拉到测试环境就跑不起来【jdk版本等】,或者上线的时候运行不起来,这时候就要为每个机器配置一个环境,那运维人员不得累死?【哈哈,

    2024年02月10日
    浏览(72)
  • 手把手教你用 Jenkins 自动部署 SpringBoot

    CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。 CI/CD 的核心概念可以总结为三点: 持续集成 持续交付 持续部署 CI/CD 主要针对在集成新代码时所引发的问题(俗称\\\"集成地狱\\\")。 为什么会有集成地狱这个“雅称”呢?大家想想我们一个项目部署的

    2024年02月02日
    浏览(52)
  • 手把手教你将项目部署到服务器!

    一、导入centos7虚拟机: 打开VMWare,点击“打开虚拟机”,选择centos7.ova之后,选择存储路径: 点击导入: 选择“不再显示此消息”,点击“重试”按钮: 点击“编辑虚拟机设置”,修改处理器、内存、硬盘等信息后,启动 按Ctrl+Alt键可以切换到windows下。 启动成功后,输入

    2023年04月20日
    浏览(56)
  • 手把手教你Linux部署Nexus3私服

    对maven来说仓库分为两类:本地仓库和远程仓库,有三种专门的Maven仓库管理软件可以用来帮助我们建立私服:chiva、Artifactory和Nexus。Nexus是当前最流行的Maven仓库管理软件。Nexus包含了各种类型的仓库的概念,包括代理仓库、宿主仓库、仓库组等。每一种仓库都提供了丰富实用

    2024年02月19日
    浏览(59)
  • 【Docker】手把手教你搭建好玩的docker项目合集

    这是我在使用docker后,慢慢一个个累计起来的项目,觉得还挺有意思的。 之后我会持续慢慢的更新新的项目,大伙如何有好玩的docker项目,欢迎来找我讨论哇,我每天都会看私信的 docker搭建数据库 使用docker安装数据库是非常省事的,而且想安什么类型的数据就安什么类型的

    2024年02月07日
    浏览(60)
  • AIGC|手把手教你进行ChatGLM模型部署实践

    模型部署基本步骤分为模型选择、模型部署、运行,如果需要在特定的场景下定制化模型,则还需要进行数据集的选择、数据集格式转换、微调。 根据上述的步骤本教程选取如下的开源模型、数据集,来对医疗场景下进行定制化模型部署。当然模型部署对GPU要求非常高,所以

    2024年02月03日
    浏览(49)
  • 手把手教你部署上线,你确定不瞧一瞧?

    Hello~ 大家好! 我又来更新咯 今天带大家部署云上线! 部署上线? 案例:基于云服务器上线青蛙吃苍蝇小游戏 1、安装apache服务 # yum install httpd -y 2、启动apache服务 # systemctl start httpd 3、在华为云控制台上开启安全组 4、上传项目包到服务器上 # yum install lrzsz -y    //安装rz命令

    2024年02月19日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包