Docker-compose创建镜像与容器_raining……的博客-程序员宅基地

技术标签: JAVA  java  Docker  jar  docker  

一、工程源码打包成jar

首先 idea 得安装插件maven。使用maven的package功能生成.jar文件。如图:
在这里插入图片描述
在这里插入图片描述

二、添加配置文件

在项目中添加三个文件:application.yml、docker-compose.yml、Dockerfile,文件内容分别如下:
在这里插入图片描述

1、application.yml 内容

spring:
  application:
    name: eureka-service
---
server:
  port: 8081
spring:
  profiles: eureka-svc1
eureka:
  instance:
    hostname: eureka-svc1
    prefer-ip-address: true
  client:
    serviceUrl:
      defaultZone: http://eureka-svc2:8082/eureka/,http://eureka-svc3:8083/eureka/
      register-with-eureka: true
---
server:
  port: 8082
spring:
  profiles: eureka-svc2
eureka:
  instance:
    hostname: eureka-svc2
    prefer-ip-address: true
  client:
    serviceUrl:
      defaultZone: http://eureka-svc1:8081/eureka/,http://eureka-svc3:8083/eureka/
      register-with-eureka: true
---
server:
  port: 8083
spring:
  profiles: eureka-svc3
eureka:
  instance:
    hostname: eureka-svc3
    prefer-ip-address: true
  client:
    serviceUrl:
      defaultZone: http://eureka-svc2:8082/eureka/,http://eureka-svc1:8081/eureka/
      register-with-eureka: true

2、docker-compose.yml 内容

version: '3'
services:
  eureka-svc1:
    build: .
    container_name: eureka-svc1
    networks:
      - eureka-net
    ports:
      - 7001:7001
    environment:
      - spring.profiles.active=eureka-svc1
  eureka-svc2:
    build: .
    container_name: eureka-svc2
    networks:
      - eureka-net
    ports:
      - 7002:7002
    environment:
      - spring.profiles.active=eureka-svc2
  eureka-svc3:
    build: .
    container_name: eureka-svc3
    networks:
      - eureka-net
    ports:
      - 7003:7003
    environment:
      - spring.profiles.active=eureka-svc3

networks:
  eureka-net:
    driver: bridge

3、Dockerfile 内容

FROM openjdk:8-alpine
ENV TARGET_JAR="工程jar包名字.jar"
ADD ./${TARGET_JAR} /${TARGET_JAR}
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
  && echo 'Asia/Shanghai' >/etc/timezone
CMD java -Xrs -Xmx1024m -jar ${TARGET_JAR} --eureka.hostUri=${EUREKAHOSTURI}

三、将上述三文件与工程jar包上传服务器

本人使用工具Xftp上传,新建了个目录存放在这些文件,如下图:
在这里插入图片描述

四、使用Docker-compose创建镜像与容器

服务器上必须得先安装Docker,然后再安装 Docker-compose,这样就具备了创建镜像与容器的条件。

1、安装docker-compose

curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

2、添加可执行权限

chmod +x /usr/local/bin/docker-compose

3、创建镜像与容器

Docker-compose up -d --build

镜像与容器的创建结果如下:
在这里插入图片描述

五、检验创建结果

docker images

在这里插入图片描述

docker ps -a

在这里插入图片描述
至此,镜像与容器都已创建完成。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yetyrain/article/details/105617887

智能推荐

马斯克卫星互联网开测:最快60M,高清视频网游都OK,先造福偏远农村_视学算法的博客-程序员宅基地

边策 萧箫 发自 凹非寺量子位 报道 | 公众号 QbitAI马斯克吹的牛可能又要实现了。去年5月,SpaceX发射首批60颗Starlink卫星上天,希望给偏远地区人民带来快速的互联网...

8个最佳开源购物系统Shopping Cart_佐佐吉牧的博客-程序员宅基地

<br />8个最佳开源购物系统Shopping Cart is robust, professional grade e-Commerce shopping cart that you can download, install, and use for free. In the back end, you will use a full featured back end to manage your inventory, orders, shipping, and customers

Xgboost参数解释及调参_冷的太明显的博客-程序员宅基地_num_boost_round

General ParametersBooster ParametersTask Parameters首先xgboost有两种接口,xgboost自带API和Scikit-Learn的API,具体用法有细微的差别但不大。在运行 XGBoost 之前, 我们必须设置三种类型的参数: (常规参数)general parameters,(提升器参数)booster paramet...

hdu1047(Java)大数相加_weixin_30699955的博客-程序员宅基地

题目大意:输入n组数据,每组数据中又有若干长度不大于100的整数,以0结束每组数据的输入,求每组中数据之和。每两组数据输入之间有一行空格,输出也是如此。Integer InquiryTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1777...

Vue使用less报错:loaderContext.getResolve is not a function_small_redhat的博客-程序员宅基地

Vue中使用less 如果不指定版本直接安装会报错npm install less less-loader --save-dev所以,请指定版本npm install [email protected] [email protected] --save-dev不要忘了在webpack配置好 { test: /\.less$/, loader: "style-loader!css-loader!less-loader" }最后重新构建,搞定!.

web前端学习笔记(2)_xiaoyuzhouxyj的博客-程序员宅基地

一、组件10媒体对象boot提供了很多类,来处理媒体相关的对象图片 影音11轮播图1.轮播图结构div.carousel data-ride=”carousel”------------------------相对定位div.carousel-inner----------------------w100 溢出隐藏div.carousel-item--------------...

随便推点

org.springframework.data.redis.serializer.SerializationException: Could not read JSON: N/A_一步步迈入网络的博客-程序员宅基地

**GenericJackson2JsonRedisSerializer序列化遇到的坑****问题现象**工程使用redis作为缓存,起初使用GenericJackson2JsonRedisSerializer作为序列化反序列化工具。一般正常的对象(set,get齐全),序列化以及解序列化都没有问题。但是一旦某个对象只有get方法,而没有set方法。就无法正常反序列化。Redis序列化设置jackson // hash的value序列化方式采用jackson redisTemplate

EBS R12.2 ADOP (R12.2 AD Online Patching) - 6_weixin_34223655的博客-程序员宅基地

分类:IT综合技术6. Error Messages如果使用adop并行执行,碰到错误,job fails, 查看主要的 adop log文件及 adworkxxx.log 文件来查看错误源,解决问题后继续。 使用 adctrl 命令 restart .7. patch测试模式 (apply=no)这种模式不会apply patch...

Linux环境下更换Tomcat中运行的项目_Mr小张的博客-程序员宅基地

首先需要进入Tomcat的bin目录下去使用./shutdown.sh命令去关闭当前tomcat,但是由于关不完全,所以还需要用到如下的命令查看当前运行项目,然后再使用如下命令关掉tomcat-9后面的参数是每次都会产生变化的,所以这个是需要自己手动去观察输入的,然后如果删除成功的话就会是最下面的反应,就只留下一个tomcat就代表当前运行项目的Tomcat已经被成功的关闭了。...

混合云存储打开的正确姿势——腾讯云存储网关 CSG_云存储小天使的博客-程序员宅基地

近年来,随着云计算的发展,越来越多的企业选择将IT系统基础设施转移到云上,上云有助于推动企业加快信息化、数字化、智能化的转型,但是很多企业对传统的业务系统依赖程度较高,短时间内将业务迁移...

省市级联和样式优化之极速微信小程序开发,第二天_jianyuqi0215的博客-程序员宅基地

话说昨天已经把大概界面模型搞定了,今天的小目标就是把界面的表单搞定。首先要做就是地区,其它文本框制作还算简单关于地区这块,第一次的需求是自动获取地理位置,后面客户提了修改,当时考虑还没有开发,我就应下来了,后面才知道,自动定位这个比较简单,手工选择省份,市地区相对来说开发难度大点关于省份数据,我优先想到的是调用人家的API,可是找了几个都不是特别满意,先留着吧。先把级联选择的效果开