我id_rsa
在docker卷中放了一个安全文件larrycai_vol
,试图将其作为文件挂载到容器中。
$ docker volume inspect larrycai-vol
[
{
"CreatedAt": "2018-05-18T06:02:24Z",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/larrycai-vol/_data",
"Name": "larrycai-vol",
"Options": {},
"Scope": "local"
}
]
我们是否有如下所示的命令(现在不起作用)
docker run -it -v larrycai-vol/id_rsa:/root/.ssh/id_rsa own_ubuntu
我知道如果我从docker host挂载文件就可以了
docker run -it -v $PWD/.ssh/id_rsa:/root/.ssh/id_rsa own_ubuntu
请让我进一步考虑一些提议的解决方案,以避免进一步的误解。
-v $PWD/.ssh:/root/.ssh
=它将替换目标中的完整.ssh文件夹,因此,尽管可能,不建议这样做)-v larrycai-vol:/root/.ssh
=将替换目标中的完整.ssh文件夹,因此,尽管可能,不建议这样做)-v $PWD/.ssh/id_rsa:/root/.ssh/id_rsa
=您的第二个示例)-v /var/lib/docker/volumes/YOUR_NAMED_VOLUME_NAME/_data/file:/dest_dir/file
=您要执行的操作)您的错误是您告诉Docker从您的larrycai-vol目录而不是从名为docker的docker挂载id_rsa。换句话说,以下三个命令是等效的:
docker run -it -v ./larrycai-vol/id_rsa:/root/.ssh/id_rsa own_ubuntu
docker run -it -v $PWD/larrycai-vol/id_rsa:/root/.ssh/id_rsa own_ubuntu
docker run -it -v larrycai-vol/id_rsa:/root/.ssh/id_rsa own_ubuntu
因此,如果larrycai-vol目录(未命名卷,但位于主机中的目录)不存在,则命令将无法正常运行。
明确地说,要执行您要尝试的操作,必须bind volume
在已命名卷存储数据的目录中创建一个。
docker run -it -v /var/lib/docker/volumes/larrycai-vol/_data/id_rsa:/root/.ssh/id_rsa own_ubuntu
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句