Docker基础
请还不熟悉Docker使用方式,基本原理的小伙伴先阅读【Docker】从0到部署单容器服务
Docker多容器架构
有很多时候我们需要部署多个服务,并让彼此之间通信,这时候再使用一个容器部署所有服务就不再是一个理想的方案了。我们针对每个服务建立一个镜像,部署到不同容器之中。下面使用一个我工作中的需求做示例讲解如何部署一个多容器服务。
Java+Python使用Thrift通信的服务
这是一个算法调用服务,用Java写客户端,提供对外调用接口。算法由于是使用Python实现的,需要用Java请求到Python端的服务,这里借助Thrift可以很好实现,python服务端向固定端口提供服务,java客户端请求该端口获取结果。
因此我决定将Tomcat+java放在一个容器内,Python服务放在另一个容器内,两个容器同时启动,相互通信。Docker提供了一个有效的管理多容器服务的应用docker compose。Docker compose和docker的安装分离,需要安装docker引擎后单独安装。
首先完成Java客户端的镜像创建:
FROM tomcat:8.0-jre8
COPY ./idClassify.war /usr/local/tomcat/webapps/idClassify.war
CMD ["/usr/local/tomcat/bin/catalina.sh", "run"]