我可以在Docker容器中启动Cassandra,但是当我向运行命令添加卷装载时,Cassandra将无法启动并挂起。我正在使用官方最新的Apache Cassandra映像(v 3.10),运行Docker版本17.04.0-ce。
这开始没问题:
docker run -d -P --name=cassandra --net=host cassandra
这挂起:
docker run -P -v /home/joe/apache-cassandra/data:/var/lib/cassandra --name=cassandra --net=host cassandra
当它挂起时,Cassandra日志中的最后一行是:
INFO [main] 2017-05-29 16:16:48,567 ColumnFamilyStore.java:406 - Initializing system.IndexInfo
我怀疑这是一个权限问题,所以这是主机目录的权限是什么
/home/joe/apache-cassandra/data:
0 drwxrwx--- 1 root vboxsf 0 May 29 14:36 commitlog
0 drwxrwx--- 1 root vboxsf 0 May 29 14:36 data
0 drwxrwx--- 1 root vboxsf 0 May 29 12:14 hints
0 drwxrwx--- 1 root vboxsf 0 May 29 12:44 saved_caches
当容器在没有卷装入的情况下运行时,我注意到容器中的等效目录由“cassandra”而不是“vboxsf”拥有。
知道如何解决这个问题吗?
答案 0 :(得分:0)
To" fix"此问题,使用其他路径运行容器,例如/ data-cassandra
问题是您的/ home / joe / apache-cassandra / data是从您的vbox主机安装的。 Docker无法更改此所有者或权限。