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