【问题标题】:Access data inside volume访问卷内的数据
【发布时间】:2020-03-30 15:02:03
【问题描述】:
我成功地为我的博客运行了一个绑定挂载,但是我认为托管卷将是一个更好的选择而不是绑定挂载,问题是,如果我需要通过 SFTP 或 vim 编辑主题或只是添加一些文件到卷,我该怎么做?现在绑定挂载允许我编辑文件,但我将如何在卷上添加/编辑文件,或者如果我想稍后将这些文件取出?
例如:docker volume create --name test-volume
如何在此处添加/编辑数据或通过 SFTP 访问?
【问题讨论】:
标签:
docker
docker-compose
dockerfile
【解决方案1】:
正如official documentation所说:
卷存储在由 Docker 管理的主机文件系统的一部分(Linux 上的 /var/lib/docker/volumes/)。非 Docker 进程不应修改文件系统的这一部分。
所以想法是建立一个新的容器,绑定工作目录并挂载一个卷,然后管理其中的文件。
例如,假设您的工作目录是/app:
docker run \
-v $PROJECT:/tmp/project
-v test-volume:/app \
alpine \
/bin/sh -c "cp /tmp/project/* /app"
可以使用同步工具,例如here。
要通过容器本身通过 SFTP 管理卷的数据,您需要确保您使用的映像支持 SSH 连接并映射 22 端口,您可以找到更多信息 here。