docker上运行微服务及两个微服务之间互相通信docker-compose

1.项目结构

docker上运行微服务及两个微服务之间互相通信docker-compose_第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 测试连接是否成功

你可能感兴趣的:(docker)