重庆博达建设集团网站,提供网站建设教程的网站,学网站开发应该学什么,单位网站建设的请示使用docker、docker-compose部署微服务 一、使用docker部署1、准备2、上传jar包3、编写dockerfile文件3、构建镜像和容器 二、使用docker-compose部署1、准备服务的jar包和dockerfile文件2、编写docker-compose.yml文件3、docker-compose常用命令#xff08;1#xff09;、前… 使用docker、docker-compose部署微服务 一、使用docker部署1、准备2、上传jar包3、编写dockerfile文件3、构建镜像和容器 二、使用docker-compose部署1、准备服务的jar包和dockerfile文件2、编写docker-compose.yml文件3、docker-compose常用命令1、前台创建镜像并启动容器2、后台创建镜像并启动容器3、查看启动的容器 4、停止服务含删除5、启动服务容器6、关闭服务容器7、重启服务容器 一、使用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
# author
LABEL authorgan# 创建目录
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
# author
LABEL authorgan# 创建目录
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-gatewayimage: 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-authcontainer_name: ruoyi-authbuild:context: ./authdockerfile: dockerfileports:- 9200:9200文件写好后上传到指定目录 3、docker-compose常用命令
1、前台创建镜像并启动容器
类似使用 java -jar 命令启动jar包注意要在docker-compose.yml文件所在目录执行命令如下
docker-compose up窗口一旦关闭服务就停止了初次启动服务的时候可以使用最左边是服务名称如果每个服务都没有看到日志报错就代表启动成功了。 CtrlC退出但即使关闭了创建的镜像和容器还存在 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-gateway6、关闭服务容器
关闭工程中所有服务的容器命令如下
docker-compose stop也可以在上面命令的基础上加上容器名称关闭指定的容器比如我只关闭auth容器命令如下
docker-compose stop ruoyi-auth7、重启服务容器
重启工程中所有服务的容器命令如下
docker-compose restart也可以在上面命令的基础上加上容器名称重启指定的容器比如我只重启auth容器命令如下
docker-compose restart ruoyi-auth