我正在使用 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 - 身份验证,添加了几个正在运行的主机和容器。但是主机上的文件夹($HOME/rancher-data/mysql)是空的。如果我用 cmd 在容器内切换,我可以在/var/lib/mysql 中看到很多 Rancher 正在使用的文件,但它们没有镜像到主机。
最佳答案
我在 Ubuntu 系统上对此进行了测试,但我无法复制您所遇到的情况。我的想法是这与 sudo 由于 env_reset
而没有将环境从本地使用传递给 root 有关。在 /etc/sudoers
,但我从我的 sudoers
中删除了它文件,它仍然工作正常。
为了在您的系统上进一步测试,我将执行以下操作:
busybox
进行测试而不是 rancher/rancher
容器。像这样运行相同的命令:sudo docker run -it --rm -v $HOST_VOLUME:/var/lib/mysql busybox ash
.这会将您放入容器中的外壳 - 使用 df -h
查看来自您主机的卷是否安装在 /var/lib/mysql
上在容器中。如果是这样,那么命令本身正在工作,我们只需要找出该挂载的位置。 docker inspect <container_id>
查看它并查找 HostConfig 部分。您应该在 Binds
下看到您的卷安装。 . "HostConfig": {
"Binds": [
"/home/ubuntu/test:/test"
],
docker
来排除 sudo 带来的“双用户环境”问题。团体。注销并重新登录。重新运行您的 docker run
不带 sudo
的命令看看它是否按预期工作。 关于docker - Docker 中的 Rancher 不会创建快照数据来托管,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62115645/