群晖docker创建运行spring 微服务

  • 群晖的设置
  • win10下ssh登录群晖
  • 创建和运行spring cloud 微服务镜像

群晖的设置

群晖NAS的地址是192.168.1.71,进入群晖套件中心安装docker。
搜索下载 hldtux/oracle-jdk-11 镜像,我们将在此基础镜像上添加spring cloud微服务jar,创建我们自己的镜像。

下载后可以看到镜像大小是400多MB,debian9基础镜像大约180MB,Oracle JDK11解压后大约290M,所以两者相加,总体这个体积上差不多。


敲入linux命令,可以查看这个镜像是作者hldtux以debian9创建,同时创建了java用户,启动容器后,默认是java用户,工作目录是java用户的主目录/home/java。

进入控制面板—终端机和snmp,启用ssh功能。

win10下ssh登录群晖

在win10中添加ssh客户端。


打开cmd,ssh登录群晖

ssh 群晖用户名@192.168.1.71
>输入密码
$sudo -i                //获得root权限
$cd /volume1/docker    //进入群晖docker工作目录,准备创建和运行镜像

创建和运行spring cloud 微服务镜像

参考我上一篇文章【图例】gradle构建spring cloud 多模块,注意把application配置文件中的注册服务地址都改成eureka,原来是localhost,但是我们目标是每个微服务运行在一个docker容器上,相当于每台服务器运行一个微服务,事先约定:运行注册服务容器名是eureka,运行订单服务容器名是order


在win10中打开\\192.168.1.71\docker共享文件夹,此文件夹即是群晖NAS的/volume1/docker。
把eureka注册服务、order订单服务、common公共服务这三个子模块的build/libs目录下jar拷贝进去,

编辑Dockerfile

#1.指定基础镜像,并且必须是第一条指令
FROM hldtux/oracle-jdk-11:latest
#2.指明我们的名字和其电子邮件,可选
MAINTAINER xxx <xxx@xxx.com>
#3.复制jar,默认到用户主目录,别名是eureka.jar
COPY eureka-1.0-SNAPSHOT.jar eureka.jar
#4.声明需要暴露的端口
EXPOSE 1111
#4.容器启动后运行的命令
CMD java -jar eureka.jar

在刚才的ssh登录cmd中,输入创建eureka镜像的命令,注意命令后有个点。
. :表示Dockerfile 文件在当前目录,可以指定Dockerfile 的绝对路径

docker build -t eureka:1 .

再次编辑Dockerfile

#1.指定基础镜像,并且必须是第一条指令
FROM hldtux/oracle-jdk-11:latest
#2.指明我们的名字和其电子邮件,可选
MAINTAINER xxx <xxx@xxx.com>
#3.复制jar,不解压
COPY common-1.0-SNAPSHOT.jar common.jar
COPY order-1.0-SNAPSHOT.jar order.jar
#4.声明需要暴露的端口
EXPOSE 2223
#4.容器启动后运行的命令
CMD java -jar order.jar

在ssh登录cmd中,输入创建order镜像的命令,注意命令后有个点

docker build -t order:1 .


创建docker网络mynet
-d:参数指定 Docker 网络类型,有 bridge、overlay。

docker network create -d bridge mynet

依次启动两个镜像,启动后的容器名为eureka、order,保持之前的容器(或服务器)名称eureka、order的约定。
-d,表示后台运行容器,并返回容器ID;
-u root, 表示以root用户登录,
–network mynet,表示新建的容器加入到mynet网络
-p 1111:1111 ,表示端口映射,前一个是群晖NAS端口,后一个是容器端口
–name eureka,表示容器名称是eureka,保持事先约定。

docker run -d -u root --network mynet -p 1111:1111 --name eureka eureka:1
docker run -d --network mynet -u root -p 2223:2223 --name order order:1




两个微服务启动正常,eureka注册服务页面能看到订单order微服务已经注册。
分别进入容器eureka详情、容器order详情,打开终端:


回顾Dockerfile,三个jar文件分别copy到容器/home/java目录,权限归root所有,所以以root用户启动容器。如果去掉-u root,则启动容器后,默认用户是java,Dockerfile中的CMD命令就无法实现,容器将启动失败,查看容器日志,会有unable to access jarfile xxxx.jar。
因为我们使用的hldtux/oracle-jdk-11镜像,它的作者hldtux在制作镜像时的用户等配置。

群晖docker创建运行spring cloud微服务相关推荐

  1. 【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 使用Docker Compose编排Spring Cloud微服务

    文章目录 Docker Compose快速人门 入门示例 使用Docker Comose编排Spring Cloud微服务 使用Maven插件读取Dockerfile进行构建 使用Maven插件构建D ...

  2. Nacos发布 v0.2 版本,无缝支持 Spring Cloud 微服务生态及高可用集群模式

    2019独角兽企业重金招聘Python工程师标准>>> 近日,阿里巴巴新开源项目Nacos 发布了 v0.2 版本,该版本开始支持完整的Spring生态技术栈,这包括 Spring ...

  3. 《Spring Cloud 微服务架构进阶》读书笔记

    前页 随着 DevOps 和以 Docker 为主的容器技术的发展,云原生应用架构和微服 务变得流行起来. 云原生包含的内容很多,如 DevOps.持续交付.微服务.敏捷等 第一章,微服务架构介绍 架 ...

  4. Spring Cloud 微服务项目操作实战流程(完结)

    Spring Cloud入门项目操作实战流程 Day01~02 〇.Service - 业务服务结构 商品服务 item service,端口 8001 用户服务 user service,端口 81 ...

  5. Spring Cloud 微服务技术栈

    Spring Cloud 简介 主要内容 微服务简介 SpringCloud 简介 SpringCloud 框架结构 SpringCloud 和 Dubbo 的对比 SpringCloud 版本号说明 ...

  6. Docker容器及Spring Boot微服务应用

    2019独角兽企业重金招聘Python工程师标准>>> Docker容器及Spring Boot微服务应用 1 什么是Docker 1.1 Docker的出现 问题一:项目实施环境复 ...

  7. 疯狂Spring Cloud微服务架构实战

    网站 更多书籍点击进入>> CiCi岛 下载 电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍 电子书下载(皮皮云盘-点击"普通下载" ...

  8. Java之 Spring Cloud 微服务的 SpringCloud Config 配置中心(第四个阶段)【二】【SpringBoot项目实现商品服务器端调用】

    SpringCloud学习目录点击跳转对应的文章 Java之 Spring Cloud 微服务搭建(第一个阶段)[一][SpringBoot项目实现商品服务器端是调用] Java之 Spring Cl ...

  9. Spring Cloud 微服务讲义

    Spring Cloud 微服务讲义 第一部分 微服务架构 第 1 节 互联网应用架构演进 第 2 节 微服务架构体现的思想及优缺点 第 3 节 微服务架构中的核心概念 第二部分 Spring Clo ...

  10. 《Spring Cloud微服务和 分布式系统实践》即将印刷和出版

    我经过一年多的沉寂, 我的新书<Spring Cloud微服务和分布式系统实践>即将发版,预计这个月底可以销售了. 全书大约514页,还算一本挺厚的书籍,不过价格未定,按人邮出版社的估计大 ...

最新文章

  1. 五连阳回调买入法_“4连阳+1阴”这种股票,吃透主升浪!挣得万贯家财
  2. 学习 ARM 系列 -- FS2410 开发板上 Nand Flash 到内存的代码搬移
  3. 阿里云移动端播放器高级功能---直播时移
  4. go语言panic机制的原理
  5. python os模块system_python 中 os.system 的本质 | 编程知识2
  6. 红外传感器型号和参数_红外传感器参数|热释电红外传感器参数
  7. WildFly Swarm:使用Java EE构建微服务
  8. LeetCode 6038. 向表达式添加括号后的最小结果
  9. 粉丝大失所望,罗永浩回应:做主播赚的不是脏钱
  10. java的多线程学习,第四记
  11. Codeforces Round #374 (Div. 2) C. Journey DP
  12. vue 微信支付的坑_微信支付踩坑
  13. 10_clickhouse,SummingMergeTree,AggregatingMergeTree(基于表,物化视图的使用)
  14. 全方位指导手把手教你实现自定义Spring Boot的 Starter公社
  15. linux测试上下行最大网速和实时网速
  16. python中len函数返回值为int吗_Python len()函数
  17. 项目管理挣值分析应用
  18. 实现Linux与windows文件互传
  19. Identity-Aware Textual-Visual Matching with Latent Co-attention文章翻译学习(ICCV)
  20. Android Hawk数据库 github开源项目,字节跳动社招面试记录

热门文章

  1. Javascript运行环境
  2. 综合评价之熵值法+TOPSIS
  3. Android NDK-EGL 初级
  4. 使用nc命令检查Linux系统远程端口是否打开
  5. string类的深拷贝和浅拷贝
  6. P1138 第k小整数
  7. 最新版 Whatsapp 官网下载安装
  8. win10电脑如何取得管理员权限
  9. 【教程】一个国外的apk镜像网站,支持下载google play等软件
  10. 动环监控系统的服务器配置,动环监控系统服务器维护