使用docker完整搭建前后端分离项目

1、docker的优势,为啥用docker

在这里插入图片描述

2、docker的核心概念

镜像【Image】- 只读模板
容器【Container】- 运行镜像的一个外壳,相当于一个独立的虚拟机
仓库【repository】- 镜像的管理工具,可公开,可私有;类似git仓库

3、centos安装docker

查看是否有docker服务

docker --version
sudo systemctl status docker

-方便添加软件

sudo yum install -y yum-utils

-添加Docker的官方软件源

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

-刷新yum源

sudo yum update

-安装dockery引擎

sudo yum install docker-ce

-启动docker

sudo systemctl start docker

-centos避免每次使用docker都要切换到特权身份

sudo groupadd docker (提示存在执行执行下一行)
sudo usermod -aG docker $USER

-重启docker

sudo systemctl restart docker

-完成这些步骤后,你就可以直接运行Docker命令而不需要sudo,安装完毕

docker -ps 

4、安装常用软件镜像

  • nginx安装
docker run -d -p 80:80  --name nginx nginx
  • mysql安装
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=wuyongqiang -d mysql:5.7
  • reids安装
docker run -d --name redis redis
  • jdk 安装
docker run -d --name jdk openjdk:8

5、使用nginx镜像部署Vue项目

执行命令(一行命令):

docker run -d -p 8080:80 --name ruoyi-web   -v /data/conf/nginx.conf:/etc/nginx/nginx.conf-v /data/logs/nginx:/var/log/nginx -v /data/web/ruoyi-web/dist:/usr/share/nginx/html 
nginx:latest

执行命令解释:
docker run
#将宿主机的8080端口映射容器的80端口
-d -p 8080:80
#容器命名为mr-web
–name mr-web
#将nginx的配置挂载在宿主机的/data/conf/nginx.conf 下
-v /data/conf/nginx.conf:/etc/nginx/nginx.conf
#将nginx的日志输出到宿主机的/data/logs/nginx目录下
-v /data/logs/nginx:/var/log/nginx
#将要部署的项目挂载在宿主机的/data/web/dist下
-v /data/web/dist:/usr/share/nginx/html
#使用的nginx镜像版本声明
nginx:latest

/home/mr-web/conf nginx.conf配置文件

#user  nobody;
worker_processes  1;
events {worker_connections  1024;
}
http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;server {listen       80;server_name  localhost;location / {# 这里重点关注以下:这里是容器内部地址root   /usr/share/nginx/html;index  index.html index.htm;try_files $uri $uri/ /index.html;error_page 404 index.html;}#和上面vue文件对应上,访问后端都加mr-api#这里看情况,有的vue项目访问后端接口不需要代理location /dev-api {#rewrite ^/rest/(.*) /$1 break;proxy_pass http://124.223.59.141:8081;#proxy_cookie_path / /rest;proxy_redirect off;#client_max_body_size 500m;#proxy_set_header X-Real-IP $remote_addr;#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}
}

6、使用JDK镜像部署java项目

编写dockerfile文件,制作java-service的镜像

#基础镜像
FROM openjdk:8
#将应用jar挂在到容器内:根服务器的相对路径,容器内的绝对路径
COPY app.jar /data/app.jar
#指定工作目录
WORKDIR /data
#暴露对外端口
EXPOSE 8080
#应用执行命令
CMD ["java", "-jar", "app.jar"]

在dockerfile所在目录下执行镜像构建命令,构建镜像:java-service-name

#构建镜像
docker build -t java-service-name

启动容器运行该镜像

docker run -d java-service-name  -p 8080:8080 --name java-app  java-service-name

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/332610.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

排序算法(二)

选择排序 &#xff1a; 思想&#xff1a; 每一轮把最小元素和未排序数组的第一个交换位置&#xff0c;直到全部排好序&#xff0c;最终为一个升序结果 代码展示&#xff1a; #include <stdio.h>int main(void) {int i, j; // 循环变量int MinIndex; // 保存最小的值的…

MySQL大表删除方案

1.问题 在生产环境中&#xff0c;执行大表删除操作时&#xff0c;很容易因为占用了大量io资源导致其他事务被阻塞&#xff0c;最终事务不断堆积导致MySQL挂掉。 2.drop命令 drop命令&#xff0c;MySQL主要干了两件事&#xff1a; 清除buffer pool缓冲&#xff08;内存&…

jmeter之MD5加密接口请求教程

前言&#xff1a; 有时候在项目中&#xff0c;需要使用MD5加密的方法才可以登录&#xff0c;或者在某一个接口中遇到 登录获取token后才可以进行关联&#xff0c;下面介绍下遇到的常见使用 一、第一种方法&#xff1a;使用jmeter自带的函数助手digest 选择工具&#xff0c;选择…

一文带你学会如何部署个人博客到云服务器,并进行域名备案与解析!

哈喽&#xff0c;大家好呀&#xff01;这里是码农后端。之前我给大家介绍了如何快速注册一个自己的域名&#xff0c;并创建一台自己的阿里云ECS云服务器。本篇将介绍如何将个人博客部署到云服务器&#xff0c;并进行域名备案与解析。 1、域名备案 注册了域名并购买了云服务器之…

识别鼠标绘制的数学公式网站

https://webdemo.myscript.com/views/math/index.html x n m x n x m x^{nm}x^{n}\times x^{m} xnmxnxm 使用"$$"进行包裹

unity开发Hololens,使用unity自带的UGUI

hololens 使用UGUI 新建画布&#xff0c;添加组件&#xff0c; 画布模式改成WorldSpace&#xff0c;这样在能在3D场景里 随意的移动位置&#xff0c; 添加NearIteractionTouchaBleUnityUI、CanvasUtility组件 EaventsToReceive改成Pointer&#xff0c; 这样&#xff0c;UGUI的…

Golang | Leetcode Golang题解之第113题路径总和II

题目&#xff1a; 题解&#xff1a; type pair struct {node *TreeNodeleft int }func pathSum(root *TreeNode, targetSum int) (ans [][]int) {if root nil {return}parent : map[*TreeNode]*TreeNode{}getPath : func(node *TreeNode) (path []int) {for ; node ! nil; no…

2024年中国电机工程学会杯数学建模思路 - 案例_ ID3-决策树分类算法

# 前言 2024电工杯(中国电机工程学会杯)数学建模思路解析 最新思路更新(看最新发布的文章即可): https://blog.csdn.net/dc_sinor?typebloghttps://blog.csdn.net/dc_sinor/article/details/128779911) 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法&#xff0c;就…

骑行 - 新区永旺出发的环太湖路线

环过好几次太湖&#xff0c;但对路线都没太在意&#xff0c;都是跟着别人走的。这次自己制定一个路书&#xff0c;方便下次自己一个人环太湖时使用。 开始是使用高德地图做路书&#xff0c;只能在PC上做。我用的是网页版&#xff0c;每次选点太麻烦了。要输入地址搜索&#xff…

Nginx代理配置(专业版)

写在前面提醒&#xff1a;使用代理&#xff0c;如果可以&#xff0c;请尽量支持双协议&#xff0c;http、https均要支持哈。 注意&#xff1a;监控系统只是运行代码&#xff0c;是否支持https&#xff0c;需要运维同学在你们的服务器上配置https证书&#xff0c;配置好证书&…

探索集合python(Set)的神秘面纱:它与字典有何不同?

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、集合&#xff08;Set&#xff09;与字典&#xff08;Dictionary&#xff09;的初识 1. …

Mysql函数

字符串函数 concat(s1,s2…sn)把传入的参数连接成一个字符串 注意&#xff1a;任何字符串与NULL进行连接的结果都将是NULL insert(str&#xff0c;x&#xff0c;y&#xff0c;instr)函数&#xff1a;将字符串str从第x位置开始&#xff0c;y个字符长度的字串替换为instr lower…

从“反超”到“引领”,中国卫浴品牌凭何遥遥领先?

作者 | 曾响铃 文 | 响铃说 前不久&#xff0c;第28届中国国际厨房、卫浴设施展览会(以下简称“中国国际厨卫展”)在上海如期举行&#xff0c;就结果来说真的让人大开眼界。 冲水声比蚊子声更小的马桶、能化身无感交互平台的魔镜柜、可以语音交互的淋浴器&#xff0c;这些“…

类与对象(上)

目录 ​编辑 一、面向过程和面向对象初步认识 二、类的引入 三、类的定义 四、类的访问限定符及封装 4.1 访问限定符 【面试题】 4.2 封装 【面试题】 五、类的作用域 六、类的实例化 七、类对象模型 7.1 如何计算类对象的大小 7.2 类对象的存储方式猜测 7.3 结…

Yolov9调用COCOAPI生成APs,APm,APl

最近在做小目标检测的东西&#xff0c;因为后期毕业论文需要&#xff0c;所以开始使用Yolov9模型&#xff0c;运行val.py的时候不会自己产生小目标的AP指标&#xff0c;所以研究了一下&#xff0c;步骤非常简单&#xff1a; 第一步&#xff1a; 在数据集中生成json格式的Annota…

ROS参数服务器

一、介绍 参数服务器是用于存储和检索参数的分布式多机器人配置系统&#xff0c;它允许节点动态地获取参数值。 在ROS中&#xff0c;参数服务器是一种用于存储和检索参数的分布式多机器人配置系统。它允许节点动态地获取参数值&#xff0c;并提供了一种方便的方式来管理和共享配…

开源大模型与闭源大模型

概述 开源大模型和闭源大模型是两种常见的大模型类型&#xff0c;它们在以下方面存在差异&#xff1a; 开放性&#xff1a; 开源大模型&#xff1a;代码和模型结构是公开可用的&#xff0c;任何人都可以访问、修改和使用。闭源大模型&#xff1a;模型的代码和结构是私有的&…

Thymeleaf 搭建家居网首页

文章目录 1.引入Thymeleaf sunliving-commodity模块1.在resources目录下引入Thymeleaf 所需资源2.pom.xml引入Thymeleaf依赖3.application.yml 关闭缓存&#xff0c;使页面实时刷新4.在application-prod.yml开启缓存5.编写com/sun/sunliving/commodity/web/IndexController.jav…

文心智能体大赛:百度文心智能体平台初体验

写在前面 博文内容涉及&#xff1a;文心智能体大赛:文心智能体初体验理解不足小伙伴帮忙指正 &#x1f603;,生活加油 我徒然忘记了热闹&#xff0c;却来不及悟透真正的清冷(《四喜忧国》) 前言 徒然忘记了热闹&#xff0c;却来不及悟透真正的清冷(《四喜忧国》)&#xff0c;在…

LiveGBS流媒体平台GB/T28181用户手册-版本信息:查看机器码、切换查看流媒体服务

LiveGBS流媒体平台GB/T28181用户手册--版本信息:查看机器码、切换查看流媒体服务 1、版本信息1.1、查看机器码1.2、多个流媒体服务1.3、提交激活 2、搭建GB28181视频直播平台 1、版本信息 版本信息页面&#xff0c;可以查看到信令服务 流媒体服务相关信息&#xff0c;包含硬件…