用Jetty和Cassandra创建docker容器

时间:2016-02-15 11:48:27

标签: docker cassandra jetty dockerfile

使用上述here

步骤在Cent OS上安装了泊坞窗

到目前为止,我可以按照Jetty&上面提到的步骤独立运行码头和cassandra的码头图像。 Cassandra

我想创建一个包含Cassandra database的docker容器和一个在Jetty server中运行的Web应用程序,它与该数据库进行交互。

我能够使用Jetty创建docker容器并能够使用以下Dockerfile内容在jetty中运行一些示例Web应用程序

FROM jetty
RUN mkdir /var/lib/jetty/webapps/test-app
COPY index.html /var/lib/jetty/webapps/test-app/

一旦我将此文件保存为Dockerfile,我发出以下命令来创建docker镜像并运行相同的

docker build -t test-docker .

docker run -d -p 8443:8080 test-docker

现在,我可以在浏览器中使用

查看此应用程序的相同结果

<ip_address>:8443/test-app/index.html

问题:

我应该如何将Cassandra数据库与此docker镜像集成,并运行作为一个组打包的完整Jetty + Cassandra + Web Application

2 个答案:

答案 0 :(得分:1)

Docker Cassandra Documentation中所述,而不是使用

运行cassandra
docker run --name some-cassandra -d cassandra:tag

提及cassandra使用的所有端口,以便可以通过以下外部资源进行通信或交互

docker run --name some-cassandra -d -p 7000:7000 -p 7001:7001 -p 7199:7199 -p 9042:9042 -p 9160:9160 cassandra:tag

现在,我在Jetty Container中运行的Web应用程序可以使用Java Driver访问Cassandra数据库。

注意:如果您使用的是Cassandra版本&gt; 3.0然后你应该使用版本&gt; = cassandra-driver-core

3.0

cassandra-driver-core

的Maven依赖关系
<dependency>
    <groupId>com.datastax.cassandra</groupId>
    <artifactId>cassandra-driver-core</artifactId>
    <version>3.0.0</version>
</dependency>

cassandra-driver-mapping

<dependency>
    <groupId>com.datastax.cassandra</groupId>
    <artifactId>cassandra-driver-mapping</artifactId>
    <version>3.0.0</version>
</dependency>

答案 1 :(得分:0)

您可以使用Cassandra Official Docker Image启动cassandra数据库。正如您现在所做的那样,在一个单独的容器中启动您的Web应用程序。

您可以将cassandra容器与您的Web应用程序容器

链接
docker run --name webapp --link cassandra:cassandra -d test-docker

您需要在webapplication中使用cassandra主机名/容器IP。您可以将cassandra DB_URL作为环境变量传递。

docker run --name webapp --link cassandra:cassandra  -e DB_URL='cassandra:7000' -d test-docker

详细了解Docker container Linking