我的编程空间,编程开发者的网络收藏夹
学习永远不晚

使用docker、docker-compose部署微服务

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

使用docker、docker-compose部署微服务

一、使用docker部署

1、准备

这里已经在docker安装并启动好了Redis、nacos,配置好了“ruoyi-gateway-prod.yml”文件。

注意如果配置文件中有Redis、MySQL、nacos这些的连接信息,需要把IP地址改为服务器的公网地址或者内网地址,不会连接不到。
在这里插入图片描述

2、上传jar包

我这里以微服务版若依的网关服务为例,上传到指定目录。

在这里插入图片描述

3、编写dockerfile文件

官方文档:

https://docs.docker.com/engine/reference/builder/

英文的看起来有些吃力,若依这里有中文的教程

在这里插入图片描述

这是若依的文档地址:

http://doc.ruoyi.vip/ruoyi-cloud/cloud/dokcer.html#dockerfile

先获取构建镜像所需要的基础镜像,也就是jdk镜像,先看看有哪些jdk镜像

docker search openjdk

在这里插入图片描述
这里获取的是jdk8的镜像

docker pull openjdk:8-jre

在这里插入图片描述
我之前获取过,第一次获取可能慢一点。

再创建一个名为dockerfile的文件,文件名可以自定义,一般都为dockerfile,内容如下:
在这里插入代码片

# 基础镜像FROM  openjdk:8-jre# authorLABEL author="gan"# 创建目录RUN mkdir -p /home/jar# 指定路径,后面运行的jar包就是在这个目录WORKDIR /home/jar# 挂载目录VOLUME /home/jar# 复制jar文件到路径,第一个是宿主机文件目录(dockerfile所在目录,不能是绝对路径),第二个是容器文件目录COPY ./ruoyi-gateway.jar /home/jar/ruoyi-gateway.jar# 启动网关服务jar包ENTRYPOINT ["java","-jar","-Xms256M","-Xmx256M","ruoyi-gateway.jar"]

上传到和jar包同一目录

在这里插入图片描述

假如要复制多个文件到容器,可以这样

在这里插入图片描述

3、构建镜像和容器

在当前目录下构建镜像,注意后面的“.”不是多余的,命令如下:

docker build -f /www/wwwroot/changjing/jar/gateway/dockerfile -t ruoyi-gateway .

解释:

-f:后面接的是 dockerfile 文件的路径
-t:为构建的镜像打上标签,就是构建的镜像名称

注意:

执行构建镜像的命令要在dockerfile文件所在目录,因为dockerfile文件的“COPY” 命令只能在相对于dockerfile文件的相对目录,使用宿主机的绝对目录构建会报错。

执行结果如下:

在这里插入图片描述

构建成功,因为我前面已经构建成功过了,可能会和第一次构建不太一样。

接下来启动镜像,命令如下:

docker run -d --name ruoyi-gateway -p 8010:8010 ruoyi-gateway

解释:

–name:后面接的是容器名称,我这里和镜像名称一样
-p:后面接的是宿主机和容器的端口映射,“:”前为服务器端口,“:”后为seata容器端口
最后面的是镜像名称

可以看到容器已经跑起来了。

在这里插入图片描述

二、使用docker-compose部署

使用docker-compose部署服务是使用docker部署基础上,增加docker-compose.yml文件统一管理服务容器,实现一个命令启动或关闭所有服务容器,所以要使用docker-compose部署,还是得先学会使用docker部署,是一种前期麻烦后期舒服的部署方式。

若依也有相关的教程:

http://doc.ruoyi.vip/ruoyi-cloud/cloud/dokcer.html#docker-compose

1、准备服务的jar包和dockerfile文件

在保留前面若依的gateway的jar包和dockerfile文件基础上,增加auth的jar包和dockerfile文件,auth的dockerfile跟gateway大同小异,具体如下:

# 基础镜像FROM  openjdk:8-jre# authorLABEL author="gan"# 创建目录RUN mkdir -p /home/jar# 指定路径WORKDIR /home/jar# 挂载目录VOLUME /home/jar# 复制jar文件到路径,第一个是宿主机文件目录(dockerfile所在目录,不能是绝对路径),第二个是容器文件目录COPY ./ruoyi-auth.jar /home/jar/ruoyi-auth.jar# 启动系统服务ENTRYPOINT ["java","-jar","-Xms256M","-Xmx256M","ruoyi-auth.jar"]

在这里插入图片描述

上传到指定的文件夹

在这里插入图片描述

在这里插入图片描述

2、编写docker-compose.yml文件

官网上docker-compose.yml文件对应的docker版本
在这里插入图片描述

这是我的docker版本:

在这里插入图片描述

所以我的docker-compose.yml的文件版本是3.8。

文件中只有gateway和auth相关的内容,具体如下:

# 描述 Compose 文件的版本信息version : '3.8'# 定义服务,可以多个,每个服务中定义了创建容器时所需的镜像、参数、依赖等services:  ruoyi-gateway:  # 服务名称,跟构建镜像名称有关,假如image值为空,那么生成的镜像名称为“docker-compose.yml文件所在目录名称_ruoyi-gateway”,我放在jar目录,生成的镜像名称就是jar_ruoyi-gateway    image: ruoyi-gateway  # 构建镜像名称    container_name: ruoyi-gateway   # 容器名称    build:      context: ./gateway    # 构建镜像的jar包和dockerfile文件所在的目录(相对于docker-compose.yml文件,我这里gateway目录是跟docker-compose.yml文件同一目录)      dockerfile: dockerfile  # 构建网关镜像的文件名称    ports:      - "8010:8010"   # 构建容器端口号,“:”前为宿主机端口,“:”后为容器端口  ruoyi-auth:    image: ruoyi-auth    container_name: ruoyi-auth    build:      context: ./auth      dockerfile: dockerfile    ports:      - "9200:9200"

文件写好后上传到指定目录

在这里插入图片描述

3、docker-compose常用命令

(1)、前台创建镜像并启动容器

类似使用 java -jar 命令启动jar包,注意要在docker-compose.yml文件所在目录执行,命令如下:

docker-compose up

在这里插入图片描述
窗口一旦关闭服务就停止了,初次启动服务的时候可以使用,最左边是服务名称,如果每个服务都没有看到日志报错就代表启动成功了。

在这里插入图片描述
Ctrl+C退出,但即使关闭了,创建的镜像和容器还存在

在这里插入图片描述

(2)、后台创建镜像并启动容器

也要在docker-compose.yml文件所在目录执行,命令如下:

docker-compose up -d

在这里插入图片描述

也可以指定docker-compose.yml文件的路径,命令如下:

docker-compose -f /www/wwwroot/changjing/jar/docker-compose.yml up -d

在这里插入图片描述

执行不会打印每个服务启动的日志,需要查看日志可以使用如下命令进行查看

docker-compose logs

在这里插入图片描述
如果只想看ruoyi-auth服务的日志,可以使用如下命令

docker-compose logs ruoyi-auth

在这里插入图片描述

(3)、查看启动的容器

可以查看docker-compose.yml文件启动的所有容器,命令如下:

docker-compose ps

在这里插入图片描述

也可以指定服务名称,比如执行看ruoyi-auth有没有启动,命令如下:

docker-compose ps ruoyi-auth

在这里插入图片描述

注意只能在docker-compose.yml文件所在目录执行,在其他目录执行会报错

在这里插入图片描述

4、停止服务(含删除)

停止并删除所有服务的容器,不删除镜像,命令如下:

docker-compose down

可以看到镜像还在,但对应的容器被删除了。

在这里插入图片描述
查看服务容器所对应的镜像,命令如下:

docker-compose images

在这里插入图片描述

停止并删除工程中所有服务的容器、网络、镜像,命令如下:

docker-compose down --rmi all

在这里插入图片描述
如果重新上传了jar包就可以使用这个方式停止。

5、启动服务容器

启动工程中所有服务的容器,命令如下:

docker-compose start

在这里插入图片描述
也可以在上面命令的基础上加上容器名称,启动指定的容器,比如我只启动gateway容器,命令如下:

docker-compose start ruoyi-gateway

在这里插入图片描述

6、关闭服务容器

关闭工程中所有服务的容器,命令如下:

docker-compose stop

在这里插入图片描述
也可以在上面命令的基础上加上容器名称,关闭指定的容器,比如我只关闭auth容器,命令如下:

docker-compose stop ruoyi-auth

在这里插入图片描述

7、重启服务容器

重启工程中所有服务的容器,命令如下:

docker-compose restart

在这里插入图片描述

也可以在上面命令的基础上加上容器名称,重启指定的容器,比如我只重启auth容器,命令如下:

docker-compose restart ruoyi-auth

在这里插入图片描述

来源地址:https://blog.csdn.net/studio_1/article/details/132235696

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

使用docker、docker-compose部署微服务

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

使用docker、docker-compose部署微服务

使用docker、docker-compose部署微服务 一、使用docker部署1、准备2、上传jar包3、编写dockerfile文件3、构建镜像和容器 二、使用docker-compose部署1、准备服务的jar包和doc
2023-08-30

Docker compose部署minio服务

这篇文章主要介绍了Docker compose部署minio服务,minio的作用就是用来存储文件的,比如图片、视频、音频等各种类型的文件,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
2022-11-13

怎么使用docker-compose来部署服务

今天就跟大家聊聊有关怎么使用docker-compose来部署服务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。使用docker-compose 大杀器来部署服务 先从 docker
2023-06-19

使用 Docker Compose 部署 MySQL 8.0

大家好!今天我们来讨论一下如何使用 Docker Compose 部署 MySQL 8.0。Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具,它使得管理和部署复杂的应用程序变得更加简单。 MySQL 8
2023-08-24

怎么使用Docker-compose部署mysql

这篇文章主要介绍了怎么使用Docker-compose部署mysql的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Docker-compose部署mysql文章都会有所收获,下面我们一起来看看吧。一、D
2023-07-06

如何使用docker-compose部署clickhouse

这篇文章主要介绍如何使用docker-compose部署clickhouse,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!ClickHouse 是一个开源的面向列的 DBMS(由 Yandex 开发)。ClickHo
2023-06-25

Docker中如何使用Compose部署ELK

这篇文章给大家介绍Docker中如何使用Compose部署ELK,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.1定义对于大规模的日志,需要集中化的管理。而ELK提供了一整套解决方案,并且都是开源软件,之间互相配合使
2023-06-20

手把手教你docker部署(使用docker-compose)教程

使用DockerCompose可以轻松、高效的管理容器,下面这篇文章主要给大家介绍了关于手把手教你docker部署(使用docker-compose)的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2023-01-28

docker部署nodejs微服务

随着微服务架构的流行,越来越多的开发者开始选择使用Docker容器部署自己的应用程序。Docker有很多优点,例如强化了开发与运维的分离,缩短了应用程序部署的时间等等。本文将探讨如何用Docker容器来部署一个Node.js微服务应用程序。1. 安装Docker在开始之前,我们需要安装Docker。在Docker的官网上,你可以很容易地找到不同操作系统的安装包(https://
2023-05-14

Docker swarm如何通过docker-compose部署应用

DockerSwarm是一款集群管理工具,通过Docker-Compose部署应用非常简便。只需创建docker-compose文件,初始化Swarm集群,再通过命令部署应用即可。Swarm具备可扩展性、高可用性、服务发现和编排等优点。最佳实践包括使用stack名称、定义健康检查、使用环境变量、启用日志记录和配置持久存储。
Docker swarm如何通过docker-compose部署应用
2024-04-02

Docker Compose如何部署微服务项目上线功能

今天小编给大家分享一下Docker Compose如何部署微服务项目上线功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一
2023-07-02

如何使用Docker Compose搭建部署ElasticSearch

本篇内容主要讲解“如何使用Docker Compose搭建部署ElasticSearch”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Docker Compose搭建部署ElasticS
2023-06-29

docker怎么部署微服务

要部署微服务,可以使用Docker来创建和管理容器化的微服务。下面是一个基本的步骤:编写Dockerfile:首先,你需要编写一个Dockerfile来定义你的微服务镜像的构建过程。Dockerfile包含了一系列的指令,用于设置容器的环境
2023-10-27

如何使用Docker Compose快速部署多容器服务

小编给大家分享一下如何使用Docker Compose快速部署多容器服务,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1 什么是Docker Compose前面我们使用 Docker 的时候,定义 Dockerfile 文
2023-06-29

使用docker-compose部署mysql的完整步骤

目录前言一、docker-compose简介二、部署步骤1. 在php/root 目录下新建目录docker-compose,在/root/docker-compose目录下新建mysql文件件2 准备挂载文件3.编写docker-comp
2022-08-08

使用Docker-compose部署mysql的简单步骤

目录前言一、docker-compose简介二、部署步骤总结前言虽然docker部署环境比自己下载安装包要方便不少,但是docker的命令还有挂载目录在每次启动容器的时候都去找命令对使用者是很不友好的,而且有时候要启动多个容器的时候显然一
2023-04-14

编程热搜

目录