Docker中的Rancher不会创建快照数据到主机上。

问题描述 投票:0回答:1

我在CentOS 7的VPS上用Docker运行Rancher 1.6。我想与主机共享配置数据(如果docker容器失败,不要丢失数据)。

在启动Rancher容器之前,我在主机上创建了一个文件夹。

HOST_VOLUME=$HOME/rancher-data/mysql
mkdir -p $HOST_VOLUME

然后启动rancher服务器。

sudo docker run -d \
-v $HOST_VOLUME:/var/lib/mysql \
--restart=unless-stopped \
-p 8080:8080 \
rancher/server

我设置了Rancher认证,添加了几个主机和容器,现在正在运行。但是主机上的文件夹($HOMErancher-datamysql)是空的。如果我在容器内用cmd切换,我可以在varlibmysql中看到很多Rancher正在使用的文件,但它们没有镜像到主机上。

docker centos vps docker-volume rancher
1个回答
0
投票

我在Ubuntu系统上测试了一下,我无法重复你所遇到的情况。我的想法是,这与sudo没有将环境从你的本地使用传递给root有关,原因是 env_reset/etc/sudoers但我把它从我的 sudoers 文件,它仍然可以正常工作。

为了在你的系统上进一步测试,我会做以下工作。

  1. 如果有问题,那是Docker的问题,而不是Rancher的问题,所以用以下方法进行测试 busybox 而非 rancher/rancher 容器。像这样运行同样的命令。sudo docker run -it --rm -v $HOST_VOLUME:/var/lib/mysql busybox ash. 这将使你进入容器中的一个shell--使用 df -h 查看您的主机上的卷是否挂载到了 /var/lib/mysql 的容器中。如果是这样,那么命令本身是有效的,我们只需要找出 哪儿 该挂载是。
  2. 从另一个登录到同一系统(当上述容器正在运行时),用 docker inspect <container_id> 并查找 HostConfig 部分。你应该可以看到你的卷轴挂载在 Binds.
"HostConfig": {
    "Binds": [
        "/home/ubuntu/test:/test"
    ],
  1. 如果你在那里没有看到它,那么Docker就会忽略你的挂载请求。按照 @nischay-goyal 的建议,用绝对路径再试一次。你也可以在系统日志中寻找关于为什么Docker不能按请求挂载卷的错误输出。我希望它能出错并失败,但也许有其他的东西在充当noop,它还是在继续。日志会给你更多信息。
  2. 如果上面的方法都不奏效,请通过将你的本地用户添加到 "双用户环境 "中来排除sudo带来的问题。docker 组。退出并重新登录。重新运行您的 docker run 命令而不 sudo 看看是否能达到预期的效果。
© www.soinside.com 2019 - 2024. All rights reserved.