使用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.pswp.cn/web/14018.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/14018.shtml
英文地址,請注明出處:http://en.pswp.cn/web/14018.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【前端】js通過元素屬性獲取元素

【前端】js通過元素屬性獲取元素 <div for"hc_opportunity_config">aaaaa</div>//通過屬性獲取元素document.querySelector([for"hc_opportunity_config"]) document.querySelector([屬性"屬性值"])

操作教程|通過DataEase開源BI工具對接金山多維表格

前言 金山多維表格是企業數據處理分析經常會用到的一款數據表格工具&#xff0c;它能夠將企業數據以統一的列格式整齊地匯總至其中。DataEase開源數據可視化分析工具可以與金山多維表格對接&#xff0c;方便企業更加快捷地以金山多維表格為數據源&#xff0c;制作出可以實時更…

包拯斷案 | MySQL5.7替換路上踩過的坑 一鍵get解決辦法@還故障一個真相

提問&#xff1a;作為DBA運維的你&#xff0c;是否有過這些煩惱 1、業務系統進行替換投產時&#xff0c;發現數據庫回放并行度低 2、雖然2個數據庫集群使用同一份數據&#xff0c;卻在關閉雙一后&#xff0c;二級從庫的回放效率依舊緩慢&#xff0c;不知是什么原因&#xff1f…

機器人開源項目分享,助力一戶一機器人

最初&#xff0c;因隋煬帝思念心切&#xff0c;命工匠按照柳抃的形象制作了木偶機器人&#xff0c;被認為是歷史上最早的機器人之一。這些木偶機器人通過精巧設計的機關&#xff0c;能夠執行坐、起、拜、伏等動作。 如今&#xff0c;隨著科技的發展&#xff0c;機器人已經廣泛…

從ES5邁向ES6:探索 JavaScript 新增聲明命令與解構賦值的魅力

個人主頁&#xff1a;學習前端的小z 個人專欄&#xff1a;JavaScript 精粹 本專欄旨在分享記錄每日學習的前端知識和學習筆記的歸納總結&#xff0c;歡迎大家在評論區交流討論&#xff01; ES5、ES6介紹 文章目錄 &#x1f4af;聲明命令 let、const&#x1f35f;1 let聲明符&a…

Linux磁盤初始化與fstab文件更新

環境&#xff1a; Redhat 7.9 本文操作&#xff1a; >>給disk設置分區 &#xff08;fdisk&#xff09; >>給disk設置file system格式 (mkfs ) >>創建路徑&#xff0c;并將disk mount上(mkdir和mount ) >>修改fstab文件 初始化Disk 初始化前&#xff…

Vue組件通信 - 組件傳值 / 什么是組件

1.什么是組件通信&#xff1a; 組件&#xff08;.vue&#xff09;通過某種方式來傳遞信息以達到某個目的 2.組件通信可以解決什么問題&#xff1a; 每個組件之間都有獨立的作用域&#xff0c;組件間的數據是無法共享的&#xff0c;但在實際開發中我們常常需要讓組件之間共享…

【計算機網絡原理】對傳輸層TCP協議的重點知識的總結

?????? write in front ??????? ?????????大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之處請多多諒解&#xff0c;讓我們一起共同進步????? . ?? ?xiaoxie?????????—CSDN博客 本文由xiaoxie????????? 原創 CSDN 如…

Spring Bean Map漫游:遍歷背后的生命周期奧秘

1. 引言 在Spring框架中&#xff0c;Bean的生命周期是一個復雜而精妙的過程。其中&#xff0c;遍歷存儲Bean實例的Map&#xff08;通常是DefaultSingletonBeanRegistry中的singletonObjects&#xff09;是這一過程中的重要環節。理解這個遍歷過程以及它在Bean生命周期中的作用…

桌面文件不見了怎么恢復?五種方法解決文件恢復難題,建議收藏

不小心誤刪除了桌面文件&#xff0c;導致文件丟失。事實上誤刪的文件并沒有被永久刪除&#xff0c;而是被移動到了回收站中&#xff0c;可以恢復這些文件。本文將分享多種方法&#xff0c;具體步驟如下。 方法一&#xff1a;從回收站中恢復 大多數操作系統都有回收站或垃圾桶的…

【C語言】結構體內存對齊:熱門面試話題

&#x1f525;引言 書接上文&#xff0c;我們了解關于結構體的基本知識&#xff0c;這篇將深入剖析結構體中一個重要的知識點:內存對齊 關于內存對齊是屬于熱門面試話題&#xff0c;對此單獨放在一篇來分享 &#x1f308;個人主頁&#xff1a;是店小二呀 &#x1f308;C語言筆記…

3D工業視覺

前言 本文主要介紹3D視覺技術、工業領域的應用、市場格局等&#xff0c;主要技術包括激光三角測量、結構光、ToF、立體視覺。 一、核心內容 3D視覺技術滿足工業領域更高精度、更高速度、更柔性化的需求&#xff0c;擴大工業自動化的場景。 2D視覺技術基于物體平面輪廓&#…

軟件無線電學習-第二代移動通信系統過程理解

本文知識內容摘自《軟件無線電原理和應用》 無線通信領域讓大家感受最深的是民用移動通信的快速發展。民用移動通信在短短的二十年時間里已發展了三代&#xff1a;20世紀80年代的模擬體制(TACS/AMPS)為第一代移動通信(簡稱1G)&#xff1b;20世紀90年代的數字體制(GSMCDMATDMA)…

Git提交和配置命令

一、提交代碼到倉庫 在軟件開發中&#xff0c;版本控制是一個至關重要的環節。而Git作為目前最流行的版本控制系統之一&#xff0c;為我們提供了便捷高效的代碼管理和協作工具。在日常開發中&#xff0c;我們經常需要將本地代碼提交到遠程倉庫&#xff0c;以便于團隊協作和版本…

2024電工杯數學建模B題思路模型代碼

完整內容更新見文末名片 B 題&#xff1a;大學生平衡膳食食譜的優化設計及評價 大學時代是學知識長身體的重要階段&#xff0c;同時也是良好飲食習慣形成的重要時期。這一特 定年齡段的年輕人&#xff0c;不僅身體發育需要有充足的能量和各種營養素&#xff0c;而且繁重的腦…

Java基礎教程 - 9 集合

更好的閱讀體驗&#xff1a;點這里 &#xff08; www.doubibiji.com &#xff09; 更好的閱讀體驗&#xff1a;點這里 &#xff08; www.doubibiji.com &#xff09; 更好的閱讀體驗&#xff1a;點這里 &#xff08; www.doubibiji.com &#xff09; 9 集合 什么是集合&…

【stm32/CubeMX、HAL庫】嵌入式實驗六:定時器(2)|PWM輸出

參考&#xff1a; 【【正點原子】手把手教你學STM32CubeIDE開發】 https://www.bilibili.com/video/BV1Wp42127Cx/?p13&share_sourcecopy_web&vd_source9332b8fc5ea8d349a54c3989f6189fd3 《嵌入式系統基礎與實踐》劉黎明等編著&#xff0c;第九章定時器&#xff0c…

愛普生TG5032SFN溫補晶振在機器人控制中的應用

機器人控制是機器人技術的核心組成部分&#xff0c;它涉及通過傳感器采集外部環境信息&#xff0c;然后經過信號處理、運動規劃和執行控制等步驟&#xff0c;最終實現機器人的運動控制和任務執行。在技術的不斷更選&#xff0c;機器人控制也在不斷進步和演變。智能化機器人具備…

cannot compute sizeof(off_t) when compile netcdf-fortran

export LD_LIBRARY_PATH/netcdf-c/lib:$LD_LIBRARY_PATH

Z緩沖技術在AI去衣中的關鍵角色

引言&#xff1a; 人工智能&#xff08;AI&#xff09;技術的飛速發展&#xff0c;為圖像處理領域帶來了革命性的變化。其中&#xff0c;AI去衣技術作為一種新興的應用&#xff0c;引起了廣泛關注。它不僅在多媒體內容的編輯、虛擬現實和增強現實等領域具有重要的應用價值&…