1.项目结构
项目源码:https://github.com/huangwei18351/architect
2.编写Dockerfile(以product为例)
FROM openjdk:8-jre
MAINTAINER huangwei [email protected]
COPY product-1.0-SNAPSHOT.jar /product.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","product.jar"]
然后通过git clone 克隆到centos虚拟机中
3. docker镜像准备
docker pull openjdk:8-jre
docker build -t -p 8098:8098 prodect-service .
映射端口并生成镜像;
通过浏览器访问ip+port即可
4.微服务互通,首先在本地测试,通过gateway进行转发,到customer服务,通过feign调用product的服务
4.1各服务Dockerfile文件,使用mvn package进行打包,并把jar包与Dockerfile同个目录存放
product
FROM openjdk:8-jre
MAINTAINER huangwei [email protected]
COPY product-1.0-SNAPSHOT.jar /product.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","product.jar"]
customer
FROM openjdk:8-jre
MAINTAINER huangwei [email protected]
COPY customer-1.0-SNAPSHOT.jar /customer.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","customer.jar"]
gateway
FROM openjdk:8-jre
MAINTAINER huangwei [email protected]
COPY gateway-1.0-SNAPSHOT.jar /gateway.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","gateway.jar"]
都使用
docker build -t product-service .
docker build -t customer-service .
docker build -t gateway-service .
4.2编写docker-compose.yml文件
version: '3' services: product-service: image: product-service:latest customer-service: image: customer-service:latest links: - product-service gateway-service: image: gateway-service:latest ports: - 8080:8080 links: - product-service - customer-service
4.3 安装docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
为脚本添加执行权限
chmod +x /usr/local/bin/docker-compose
docker-compose up -d使用这个运行docker-compose.yml文件,version 1,2,3编码风格不一样
4.4 使用docker-compose up -d运行
然后访问浏览器即可。
4.5如果出错,可以观察容器的logs,docker logs 观察日志情况
apt-get update更新apt服务
apt-get install net-tools 安装netstat服务
netstat -na|grep 8099监听8099端口
telnet ip port 测试连接是否成功