使用上述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
?
答案 0 :(得分:1)
如Docker Cassandra Documentation中所述,而不是使用
运行cassandradocker 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
<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