天天看點

Docker-compose建立鏡像與容器一、工程源碼打包成jar二、添加配置檔案三、将上述三檔案與工程jar包上傳伺服器四、使用Docker-compose建立鏡像與容器五、檢驗建立結果

IDEA源碼到Docker容器建立完成圖解全過程

  • 一、工程源碼打包成jar
  • 二、添加配置檔案
    • 1、application.yml 内容
    • 2、docker-compose.yml 内容
    • 3、Dockerfile 内容
  • 三、将上述三檔案與工程jar包上傳伺服器
  • 四、使用Docker-compose建立鏡像與容器
    • 1、安裝docker-compose
    • 2、添加可執行權限
    • 3、建立鏡像與容器
  • 五、檢驗建立結果

一、工程源碼打包成jar

首先 idea 得安裝插件maven。使用maven的package功能生成.jar檔案。如圖:

Docker-compose建立鏡像與容器一、工程源碼打包成jar二、添加配置檔案三、将上述三檔案與工程jar包上傳伺服器四、使用Docker-compose建立鏡像與容器五、檢驗建立結果
Docker-compose建立鏡像與容器一、工程源碼打包成jar二、添加配置檔案三、将上述三檔案與工程jar包上傳伺服器四、使用Docker-compose建立鏡像與容器五、檢驗建立結果

二、添加配置檔案

在項目中添加三個檔案:application.yml、docker-compose.yml、Dockerfile,檔案内容分别如下:

Docker-compose建立鏡像與容器一、工程源碼打包成jar二、添加配置檔案三、将上述三檔案與工程jar包上傳伺服器四、使用Docker-compose建立鏡像與容器五、檢驗建立結果

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建立鏡像與容器一、工程源碼打包成jar二、添加配置檔案三、将上述三檔案與工程jar包上傳伺服器四、使用Docker-compose建立鏡像與容器五、檢驗建立結果

四、使用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-compose建立鏡像與容器一、工程源碼打包成jar二、添加配置檔案三、将上述三檔案與工程jar包上傳伺服器四、使用Docker-compose建立鏡像與容器五、檢驗建立結果

五、檢驗建立結果

docker images
           
Docker-compose建立鏡像與容器一、工程源碼打包成jar二、添加配置檔案三、将上述三檔案與工程jar包上傳伺服器四、使用Docker-compose建立鏡像與容器五、檢驗建立結果
docker ps -a
           
Docker-compose建立鏡像與容器一、工程源碼打包成jar二、添加配置檔案三、将上述三檔案與工程jar包上傳伺服器四、使用Docker-compose建立鏡像與容器五、檢驗建立結果

至此,鏡像與容器都已建立完成。