虚拟机下Ubuntu系统的Docker部署

news2024/12/26 4:55:19

虚拟机下Ubuntu系统的微服务项目Docker部署

文章目录

  • 虚拟机下Ubuntu系统的微服务项目Docker部署
    • 1、Ubuntu安装 Docker
    • 2、修改后端微服务的配置
      • 2.1 修改 MySQL 的配置
      • 2.2 修改 Redis 的配置
      • 2.3 修改 Nacos 的配置
    • 3、生成微服务镜像
    • 4、拉取远程镜像
    • 5、生成前端镜像
      • 5.1 准备文件
      • 5.2 构建前端镜像
    • 6、基于镜像生成并运行容器
      • 6.1 MySQL
      • 6.2 Redis
      • 6.3 Nacos
      • 6.4 三个后端微服务和网关服务
      • 6.5 前端服务
    • 7、最终镜像和容器情况展示
      • 7.1 镜像展示
      • 7.2 容器展示
    • 8、访问本系统

1、Ubuntu安装 Docker

在Ubuntu18.04系统中使用root账户来安装Docker ,并拉取OpenJDK的镜像

sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

sudo apt-get -y update
sudo apt-get -y install docker-ce

docker pull openjdk:8

2、修改后端微服务的配置

2.1 修改 MySQL 的配置

原配置:

url: jdbc:mysql://localhost:3306/tp_music?serverTimezone=Asia/Shanghai&useSSL=false

修改后的配置:

url: jdbc:mysql://mysql/tp_music?serverTimezone=Asia/Shanghai&useSSL=false

其中,tp_music是自己要使用的数据库名

2.2 修改 Redis 的配置

原配置:

redis :
	host: localhost
	port: 6379

修改后的配置:

redis:
	host: redis

2.3 修改 Nacos 的配置

原配置:

cloud:
    nacos:
      server-addr: localhost:8848

修改后的配置:

cloud:
    nacos:
      server-addr: nacos:8848

3、生成微服务镜像

将自己的三个后端微服务、一个Gateway网关服务与它们对应的 Dockerfile 文件分别放在一起,使用共享文件夹的方式将其共享到虚拟机中后,使用 Docker 镜像构建命令构建镜像。

Dockerfile 文件的编写很简单,只需要对着名字设置就行,守护进程的写法都是一样的。以Apply微服务为例

  • 第一行是引入环境,这里用的是openjdk
  • 第二行是作者信息
  • 第三行是指定添加对应的 jar 包,这里我的jar包是Apply-1.0-SNAPSHOT.jar,jar包名字一定注意不要写错
  • 第四行是守护进程的写法
FROM openjdk:8
MAINTAINER kiros
ADD Apply-1.0-SNAPSHOT.jar app.jar
ENTRYPOINT ["nohup", "java", "-jar", "app.jar", "&"]

d1
d2

分别进入对应的四个文件夹中使用对应的镜像构建命令。

cd ~/Music/User
docker build -t user .

cd ~/Music/Manage
docker build -t manage .

cd ~/Music/Apply
docker build -t apply .

cd ~/Music/Gateway
docker build -t gateway .

4、拉取远程镜像

我的微服务项目用到了这些镜像,所以要去 DockerHub 拉取 MySQL、Redis、Nacos 和 Nginx 的镜像。

docker pull mysql:5.7
docker pull redis
docker pull nacos/nacos-server:v2.1.2-slim
docker pull nginx

5、生成前端镜像

5.1 准备文件

将 nginx 配置文件,前端打包的网页文件和 Dockerfile 放在一起,同理使用共享文件夹至虚拟机中。
d3

5.2 构建前端镜像

在服务器上使用 Docker 镜像构建命令构建前端镜像。我有两套前端所以构建了两份

docker build -t vue .
docker build -t vue2 .

6、基于镜像生成并运行容器

6.1 MySQL

Mysql容器生成之后还需要进行sql数据的导入,这点可不要忘了

docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

6.2 Redis

docker run -d -p 6379:6379 --name redis redis

6.3 Nacos

docker run -d -p 8848:8848 --name nacos -e PREFER_HOST_MODE=hostname -e MODE=standalone nacos/nacos-server:v2.1.2-slim

6.4 三个后端微服务和网关服务

docker run -d -p 8881:8881 --name user --link mysql --link redis --link nacos user
docker run -d -p 8882:8882 --name manage --link mysql --link redis --link nacos manage
docker run -d -p 8883:8883 --name apply --link mysql --link redis --link nacos apply
docker run -d -p 8888:8888 --name gateway --link redis --link nacos --link user --link manage --link apply gateway

6.5 前端服务

docker run -d -p 80:80 --name vue vue
docker run -d -p 81:81 --name vue2 vue2

7、最终镜像和容器情况展示

7.1 镜像展示

docker images

d4

其中 openjdk、mysql、redis、nacos/nacos-server、nginx、vue、vue2、user、manage、apply 和 gateway 为本项目的所有镜像。

7.2 容器展示

docker ps -a

d5

图中所示九个容器即为本项目的所有容器。

8、访问本系统

打开Firefox浏览器,输入 http://localhost 即可访问本系统。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MacOS安装MongoDB与Redis

1.安装MongoDB: brew tap mongodb/brew brew install mongodb-community 后台服务方式运行mongodb: brew services restart mongodb/brew/mongodb-community 直接运行mongodb非后台服务 /usr/local/opt/mongodb-community/bin/mongod --config /usr/local/etc/mongod.con…

化工行业数字化“智能工厂”-解决方案(ppt可编辑)

本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除。 总体架构 设计理念—数据集成与流转 九大核心价值之一 九大核心价值之二 九大核心价值之三 九大核心价值之四 九大核心价值之五 九大核心价值之六 九大核心价值之七 九大核心…

数据库学习-常用的SQL语句

背景: 汇整一下自己学习数据库过程中常见的题目及语句。 一.实例分析题 二.简单SQL查询: 1):统计每个部门员工的数目select dept,count(*) from employee group by dept;2):统计每个部门员工的数目大于一个的记录se…

3.4 迭代法

4.1 雅克比迭代法: 雅可比迭代法是一种用于求解线性方程组的迭代算法,其基本思想是将线性方程组中的系数矩阵拆分为对角线矩阵和非对角线矩阵两部分,并利用对角线矩阵的逆矩阵来迭代求解方程组。 具体地,设线性方程组为Axb&…

操作系统笔记--虚拟内存的使用

1--背景概念 在计算机系统中,当多道程序同时运行时可能会出现内存不足的情况,一般可通过以下技术进行解决: 覆盖技术: 当程序太大超出内存容量时,可以采用手动覆盖的技术,只把需要的指令和数据保存在内存当…

SSM整合、环境配置以及基础综合测试(单表查询、多表查询和数据分页、前后端分离、Vue3)

SSM整合、环境配置以及基础综合测试 准备:创建maven项目以及项目框架准备 SSM整合简介 介绍: SSM(SpringSpringMVCMyBatis) 整合,就是三个框架协同开发。Spring整合Mybatis就是将Mybatis核心配置文件当中数据源的配置、事务处理、以及工厂的配置&…

Docker的使用说明

目录 第一章什么是Docker 1.1.Docker的概述 1.2.什么是容器 1.3.Docker核心概念 第二章.安装 Docker 2.1.安装环境部署 2.2.安装 Docker-CE并设置为开机自动启动 2.2.Docaker的简单信息查看 第三章.Docker 操作 3.1.Docker的镜像操作 3.2.Docker 容器操作 3.3.容器…

Baumer工业相机堡盟工业相机如何联合BGAPISDK和佳能EF变焦镜头实现相机的自动变焦(C#)

Baumer工业相机堡盟工业相机如何联合BGAPISDK和佳能EF变焦镜头实现相机的自动变焦(C#) Baumer工业相机Baumer工业相机BGAPISDK中控制变焦镜头的技术背景代码案例分享第一步:开启相机自动调焦功能模块第二步:控制自动变焦镜头电机的…

Delphi DataSnap 流程分析(二)

Delphi DataSnap 流程分析(一)_看那山瞧那水的博客-CSDN博客 粗略分析了 创建传统DataSnap的流程,现在再分析下创建现在更常用的 方式: DataSnap REST Application 这种方式只支持HTTP(普通HTTP和REST HTTP)通信,不支持TCP通信。 这种方式…

详解C语言string.h中常见的13个库函数(上)

我计划讲解C语言string.h这个头文件中,最常见的13个库函数。为了让大家更加深入的理解这些函数,部分函数我会模拟实现。篇幅所限,如果文章太长了,可能会较难坚持读完,所以我会分几篇博客来讲述。本篇博客主要讲解的函数…

什么是全民开发?|概念、技能和优势

注:全民开发的英文是Citizen Development,由咨询公司Gartner在2010年提出的概念,指非专业开发人员使用低代码或无代码平台创建应用程序,无需IT部门的支持,旨在提高生产力并降低开发成本。 国内普遍将Citizen Developme…

【ROS】单目摄像机的标定

在上节: ROS 教程之 vision : 用笔记本摄像头获取图像 能够使用相机后&#xff0c;就需要对相机进行标定&#xff0c;在ROS上使用原始图像校准单目相机。 操作步骤 1、首先将catkin_ws/src/usb_cam/launch/usb_cam-test.launch的文件内容修改掉。 原有内容&#xff1a; <…

docker 使用Dockerfile 部署springboot项目

1、先准备好你的springboot项目jar包。拉取 openjdk docker pull openjdk:8-jdk-alpine 2、上传你的springboot项目&#xff0c;然后配置 Dockerfile&#xff1a; FROM openjdk:8-jdk-alpine ADD ./springbootstudy.jar.jar /app.jar ENTRYPOINT ["java","-jar…

【源码】Spring Cloud Gateway 是在哪里匹配路由的?

我们知道&#xff0c;经过网关的业务请求会被路由到后端真实的业务服务上去&#xff0c;假如我们使用的是Spring Cloud Gateway&#xff0c;那么你知道Spring Cloud Gateway是在哪一步去匹配路由的吗&#xff1f; 源码之下无秘密&#xff0c;让我们一起从源码中寻找答案。 入…

Ant Design 常见用法与坑点总结(二):Form 表单下拉框设置初始值

前言 Ant Design 是蚂蚁出品的出色优秀的 React 组件库&#xff0c;相信使用 React 进行管理系统开发的小伙伴们或多或少都接触过 Ant Design。很多公司基于 React 开发的管理端系统也都是使用 Ant Design 的组件库。 因此&#xff0c;了解 Ant Design 的常见用法与坑点还是有…

react中如何系统化的处理时间操作?

在 Web 开发中&#xff0c;我们经常需要处理日期和时间的格式化。 在 React 中&#xff0c;这个过程变得更加容易和直观&#xff0c;因为我们可以使用一个叫做 moment 的 npm 包来帮助我们完成这个任务。 什么是 Moment? Moment.js是一个JavaScript库&#xff0c;用于处理日…

使用FFMPEG库将PCM编码为AAC

准备 ffmpeg 版本4.4 准备一段48000Hz 2 channel f32le 格式的PCM原始数据 这里我们直接使用ffmpeg命令行提取 ffmpeg -i beautlWorld.mp4 -ar 48000 -ac 2 -f f32le 48000_2_f32le.pcm -ac 采样率 -ac 音频通道 -f f32le 音频样本数据存储格式&#xff08;f32 ---- float…

【OJ比赛日历】快周末了,不来一场比赛吗? #04.22-04.28 #11场

CompHub 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…&#xff09;比赛。本账号同时会推送最新的比赛消息&#xff0c;欢迎关注&#xff01; 更多比赛信息见 CompHub主页 或 点击文末阅读原文 以下信息仅供参考&#xff0c;以比赛官网为准 目录 2023-04-22&…

程序员最新赚钱指南!

程序员们的主要收入来源 1️⃣首先&#xff0c;我们要明白程序员无论编程开发多么努力&#xff0c;随着时间推移&#xff0c;受年龄、生活、健康等因素&#xff0c;程序员们都会面临职业天花板&#xff0c;这是大多数人不可规避的一个事实。 2️⃣其次&#xff0c;这几年因为…