虚拟机下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", "&"]

docker在虚拟机部署postgresql docker装虚拟机_微服务


docker在虚拟机部署postgresql docker装虚拟机_docker_02

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

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 放在一起,同理使用共享文件夹至虚拟机中。

docker在虚拟机部署postgresql docker装虚拟机_数据库_03

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

docker在虚拟机部署postgresql docker装虚拟机_ubuntu_04

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

7.2 容器展示

docker ps -a

docker在虚拟机部署postgresql docker装虚拟机_redis_05

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

8、访问本系统

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