spring could Windows打包構建docker鏡像到linux

工程模擬參考:http://blog.csdn.net/forezp/article/details/70198649java

1、工程結構spring

 

2、Pom配置docker

<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配置信息bash

server:
  port: 8661
#  context-path: /hello

eureka:
  instance:
    prefer-ip-address: true
  client:
    registerWithEureka: false
    fetchRegistry: false

3、dockerfile信息服務器

建立dockerfile文件,位置:src/main/dockeroracle

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

4、修改遠程Linux服務器docker配置,做者版本爲Centos7app

一、編輯docker.service文件,開啓遠程調用dom

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

在ExecStart這一行後面追加-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.socktcp

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

二、重啓docker服務

service docker restart

三、查看端口是否啓動

netstat -anp|grep 2375

四、防火牆開放2375端口

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

firewall-cmd --reload

5、Windows增長DOCKER_HOST環境變量

6、Maven打包構建

  cd 到工程模塊下執行下面的打包命令

     mvn clean package docker:build -DskipTests

7、啓動容器

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

8、訪問測試

 

 

 

 

完成上面的步驟,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(配置中寫的地址) ......
註冊不進去的能夠試試。
相關文章
相關標籤/搜索