工程模拟参考:http://blog.csdn.net/forezp/article/details/70198649

一、工程结构

二、Pom配置

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- tag::plugin[] -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.3</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<skipDockerBuild>false</skipDockerBuild>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<!-- end::plugin[] -->
</plugins>
</build>

yml配置信息

server:
port: 8661
# context-path: /hello eureka:
instance:
prefer-ip-address: true
client:
registerWithEureka: false
fetchRegistry: false

三、dockerfile信息

创建dockerfile文件,位置:src/main/docker

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD eureka-server-docker-0.0.1-SNAPSHOT.jar app.jar
#RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
EXPOSE 8761

四、修改远程Linux服务器docker配置,作者版本为Centos7

1、编辑docker.service文件,开启远程调用

vi /usr/lib/systemd/system/docker.service

在ExecStart这一行后面追加-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

ExecStart=/usr/bin/dockerd-current \
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock \
--add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \
--default-runtime=docker-runc \
--exec-opt native.cgroupdriver=systemd \
--userland-proxy-path=/usr/libexec/docker/docker-proxy-current \
$OPTIONS \
$DOCKER_STORAGE_OPTIONS \
$DOCKER_NETWORK_OPTIONS \
$ADD_REGISTRY \
$BLOCK_REGISTRY \
$INSECURE_REGISTRY

2、重启docker服务

service docker restart

3、查看端口是否启动

netstat -anp|grep 2375

4、防火墙开放2375端口

firewall-cmd --zone=public --add-port=2375/tcp --permanent

firewall-cmd --reload

五、Windows增加DOCKER_HOST环境变量

六、Maven打包构建

  cd 到工程模块下执行下面的打包命令

     mvn clean package docker:build -DskipTests

七、启动容器

docker run --name eureka-server -p 8661:8661 -d mydocker/eureka-server-docker

拷贝jar包到宿主机

#docker run --name eureka-server -p 8661:8661 -v $PWD/eureka-server-docker.jar:/app.jar -d mydocker/eureka-server-docker

#docker run --name eureka-client --link eureka-server:eureka-server -p 8662:8662 -v $PWD/eureka-client-docker.jar:/app.jar -d mydocker/eureka-server-docker

八、访问测试

完成上面的步骤,eureka-server注册中心已经能够成功部署启动,我们接下来同样部署启动eureka-client,发现client总是无法注册到server中。csdn网友lirui940403的解决方案

我弄了一整天也是一直注册不进去,后来又搜了搜docker进程间通信,发现一个方法,
eureka-server部署的时候给一个名字: docker run --name eureka-server -p 8761:8761
server-hi中部署使用link参数 docker run --link eureka-server(server部署时赋予的名字):eureka-server(配置中写的地址) ......
注册不进去的可以试试。

spring could Windows打包构建docker镜像到linux的更多相关文章

  1. 打包应用和构建Docker镜像(docker在windows上)

    在构建Docker时编译应用 一般有两种方法在构建镜像时进行打包应用.第一种方法就是使用基本的镜像,该镜像包括应用平台和构建工具,因此在Dockerfile中,复制源代码到镜像中并在构建镜像时编译ap ...

  2. Spring Boot 集成servlet,发布为可直接运行的war包,方便后续打包为docker镜像。

    背景:Spring Boot 集成servlet,发布为可直接运行的war包,方便后续打包为docker镜像. 原文地址 https://github.com/weibaohui/springboot ...

  3. 使用Buildpacks高效构建Docker镜像

    1. 前言 Spring Boot 2.3.0.RELEASE 正式发布了几天了,其中有个新的特性:可以将Spring Boot应用代码直接打包为Docker镜像.这是什么科技?我赶紧去官网查了一番才 ...

  4. SpringBoot打包成Docker镜像

    1. 本文环境 Maven:3.6.3(Maven配置参考) SpringBoot version:2.3.4.RELEASE Docker version: 19.03.11(Docker搭建参考) ...

  5. 将 ASP.Net Core WebApi 应用打包至 Docker 镜像

    将 ASP.Net Core WebApi 应用打包至 Docker 镜像 运行环境为 Windows 10 专业版 21H1, Docker Desktop 3.6.0(67351),Docker ...

  6. 将你的前端应用打包成docker镜像并部署到服务器?仅需一个脚本搞定

    1.前言 前段时间,自己搞了个阿里云的服务器.想自己在上面折腾,但是不想因为自己瞎折腾而污染了现有的环境.毕竟,现在的阿里云已经没有免费的快照服务了.要想还原的话,最简单的办法就是重新装系统.而一旦重 ...

  7. 使用Jenkins pipeline流水线构建docker镜像和发布

    新建一个pipeline job 选择Pipeline任务,然后进入配置页面. 对于Pipeline, Definition选择 "Pipeline script from SCM" ...

  8. 操作系统-容器-Docker:如何将应用打包成为 Docker 镜像?

    ylbtech-操作系统-容器-Docker:如何将应用打包成为 Docker 镜像? 1.返回顶部 1. 虽然 DockerHub 提供了大量的镜像,但是由于企业环境的多样性,并不是每个应用都能在 ...

  9. 使用docker Maven插件本地构建docker镜像并发布到远程服务器

    1.登录网站https://start.spring.io/,生成一个基本的SpringBoot应用. 2.将应用导入Eclipse IDE并创建Application类.目录结构如下: Applic ...

随机推荐

  1. MySQL主从复制状态及数据一致性监测工具

    转: https://blog.csdn.net/m0_37814112/article/details/80914713

  2. INFORMIX的dbexport和dbimport使用示例说明

    INFORMIX-IDS数据库进行迁移中,我们在进行数据级别的迁移时,采用dbexport,dbimport来完成.dbexport导出数据库中所有对象的模式脚本和表数据文件,该模式脚本中包含有表等的 ...

  3. Maven的个性化定制

    用Maven的小伙伴都知道,Maven的宗旨是约定优于配置(Convention Over Configuration). 在宗旨的前提下Maven也提供了个性化定制的Profile,让我们看看使用方 ...

  4. UIButton 按钮控件-IOS开发 (实例)

    转自:http://justcoding.iteye.com/blog/1467999 UIButton是一个标准的UIControl控件,所以如果你对UIControl不甚了解还是先看一下我的另一篇 ...

  5. 优化神器 beamoff

    http://files.cnblogs.com/files/yipu/beamoff.zip csdn上有下载:http://download.csdn.net/download/bytige/83 ...

  6. Leetcode[81]-Search for a Range

    Link: https://leetcode.com/problems/search-in-rotated-sorted-array-ii/ Given a sorted array of integ ...

  7. 危险系数 set容器

    题目描述 抗日战争时期,冀中平原的地道战曾发挥重要作用. 地道的多个站点间有通道连接,形成了庞大的网络.但也有隐患,当敌人发现了某个站点后,其它站点间可能因此会失去联系. 我们来定义一个危险系数DF( ...

  8. jquery 给表格tbody t 加事件

    jquery给所有td加事件 $('#erji_list_table').on('click','td', function(){ $('#yuan_content').slideToggle(&qu ...

  9. hdu1078(记忆化搜索)

    题意:给出n*n的格子,每个各自里面有些食物,问一只老鼠每次走最多k步所能吃到的最多的食物 这道题目,值得我记住它,re了n次,以前写搜索没有注意的一个小地方,导致re这么多次的 ac代码: #inc ...

  10. CSS学习笔记(11)--Flex 布局教程:语法篇

    原文--阮一峰博客 作者: 阮一峰 日期: 2015年7月10日 网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 ...