spring could Windows打包构建docker镜像到linux
工程模拟参考:http://blog.csdn.net/forezp/article/details/70198649 一、工程结构 ? 二、Pom配置 <build> plugins> plugin> groupId>org.springframework.boot</artifactId>spring-boot-maven-plugin<!-- tag::plugin[] --> >com.spotify>docker-maven-pluginversion>0.4.3configuration> imageName>${docker.image.prefix}/${project.artifactId}dockerDirectory>src/main/dockerskipDockerBuild>falseresources> resource> targetPath>/directory>${project.build.directory}include>${project.build.finalName}.jar end::plugin[] --> > > 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(配置中写的地址) ......
注册不进去的可以试试。
? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |