- cassandra是一个开源的分布式NoSQL数据库系统。
- 去中心化而非Master/Slave架构,非常易于扩展。
- 面向列的数据库,不是传统结构式数据库。
获取镜像
docker pull cassandra:latest
创建单机容器
docker run -it --name cassandra cassandra:latest
挂载文件
切换到宿主机存放配置文件的地方(如果没有自己创建)
cd /opt/cassandra
首先我们从刚才单机版本中拷贝出yaml文件:cassandra.yaml
docker cp cassandra:/opt/cassandra/conf/cassandra.yaml .
查看拷贝出来的文件
ls
cassandra.yaml
修改配置文件:
authenticator: AllowAllAuthenticator
修改为 authenticator: PasswordAuthenticator
来允许外部连接
删除容器,一定要删除,否则报错端口占用:
docker rm -f cassandra
编写docker-compose.yml文件
前提是你已经安装好了这里的docker-compose插件,另外具体的挂载位置一定根据自身来
version: '3'
services:
cassandra-1:
image: cassandra:latest
container_name: cassandra-1
volumes:
- ~/Desktop/brainwave/conf/cassandra/cassandra.yaml:/opt/cassandra/conf/cassandra.yaml
- ~/Desktop/brainwave/data/cassandra-cluster/cassandra-1/cassandra:/var/lib/cassandra
environment:
- CASSANDRA_BROADCAST_ADDRESS=cassandra-1
ports:
- "7000:7000"
- "9042:9042"
restart: always
cassandra-2:
image: cassandra:latest
container_name: cassandra-2
volumes:
- ~/Desktop/brainwave/conf/cassandra/cassandra.yaml:/opt/cassandra/conf/cassandra.yaml
- ~/Desktop/brainwave/data/cassandra-cluster/cassandra-2/cassandra:/var/lib/cassandra
environment:
- CASSANDRA_BROADCAST_ADDRESS=cassandra-2
- CASSANDRA_SEEDS=cassandra-1
ports:
- "7001:7000"
- "9043:9042"
depends_on:
- cassandra-1
restart: always
cassandra-3:
image: cassandra:latest
container_name: cassandra-3
volumes:
- ~/Desktop/brainwave/conf/cassandra/cassandra.yaml:/opt/cassandra/conf/cassandra.yaml
- ~/Desktop/brainwave/data/cassandra-cluster/cassandra-3/cassandra:/var/lib/cassandra
environment:
- CASSANDRA_BROADCAST_ADDRESS=cassandra-3
- CASSANDRA_SEEDS=cassandra-1
ports:
- "7002:7000"
- "9044:9042"
depends_on:
- cassandra-2
restart: always
可能需要额外调整系统参数:
vi /etc/sysctl.conf
vm.max_map_count=1048575
sysctl -p
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » Docker运行Cassandra集群
发表评论 取消回复