卷挂载阻止在容器中启动

我可以在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”。

任何想法如何解决这个问题?

要“解决”这个问题,请用另一个path运行你的容器,比如/ data-cassandra

问题是你的/ home / joe / apache-cassandra / data是从你的vbox主机挂载的。 Docker不能更改所有者或者权限。