docker - 装入数据卷后,Riak容器无法启动

标签 docker riak docker-container docker-volume riak-ts

以下命令可以正常运行,并且riak服务将按预期启动:

docker run --name=riak -d -p 8087:8087 -p 8098:8098 -v $(pwd)/schemas:/etc/riak/schema basho/riak-ts



本地schemas目录已成功安装,并且riak读取了其中的sql文件。但是,如果我尝试挂载riak的datalog目录,则riak服务无法启动,并且15秒后会超时:

docker run --name=riak -d -p 8087:8087 -p 8098:8098 -v $(pwd)/logs:/var/log/riak -v $(pwd)/schemas:/etc/riak/schema basho/riak-ts


docker logs riak的输出:

+ /usr/sbin/riak start
riak failed to start within 15 seconds,
see the output of 'riak console' for more information.
If you want to wait longer, set the environment variable
WAIT_FOR_ERLANG to the number of seconds to wait.



为什么将riak的日志或数据目录挂载到本地目录后无法启动?

最佳答案

此问题与已挂载log文件夹的目录所有者有关。文件夹$GROUP$USER预期为riak,如下所示:

root@20e489124b9a:/var/log# ls -l
drwxr-xr-x 2 riak riak   4096 Jul 19 10:00 riak

但是有了卷,您将得到:
root@3546d261a465:/var/log# ls -l
drwxr-xr-x 2 root root   4096 Jul 19 09:58 riak

解决此问题的一种方法是在启动容器之前在主机上拥有riak用户和组的目录所有权。我在docker镜像中查看了UID / GID(/etc/passwd),它们是:
riak:x:102:105:Riak user,,,:/var/lib/riak:/bin/bash

现在,在启动容器之前,请更改主机目录的所有权,如下所示:
sudo chown 102:105 logs/
sudo chown 102:105 data/

这应该解决。至少现在。详细信息here

关于docker - 装入数据卷后,Riak容器无法启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45183678/

相关文章:

docker - 如何启用在 docker 容器中运行的代码访问运行容器的主机上的文件?

docker - 无法通过互联网访问我的本地kubernetes服务

docker - docker swarm中nats-streaming集群第三个节点不升

Docker 容器无法访问本地网络 DNS

c++ - riak、cpp 库和构建错误

docker - 使用 filezilla 连接到 docker 容器

docker - Docker使用 “some name/alias”运行

java - Riak ReferenceError - 使用自定义 javascript

mongodb - riak 搜索 mongodb 索引之间的区别

Ansible:在容器创建期间获取 docker 容器输出