工程模擬參考: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(配置中寫的地址) ......
注冊不進去的可以試試。 
        
