在Vagrant中将文件从虚拟机传输到主机

9

我能从我的vagrant虚拟机(guest)检索文件并将其同步到我的主机吗?

我知道同步文件可以反过来工作,但我希望有一种方法可以使它反向操作。而不是将文件从主机机器同步到guest机器;从guest机器内部检索文件并在主机机器上公开它。

谢谢。


你正在尝试从客户机同步哪些文件到主机? - cOp
5个回答

9
为什么不把它们直接放在 vagrant 虚拟机的 /vagrant 文件夹中呢?这是一个特殊的挂载文件夹,从主机(即 Vagrantfile 所在的位置)到虚拟机客户机。
这样做,您就不必担心在主机之间执行任何其他复制操作了。
$ ls
Vagrantfile
$ vagrant ssh
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-42-generic x86_64)
Last login: Wed Oct 12 12:05:53 2016 from 10.0.2.2
vagrant@vagrant-virtualbox:~$ ls /vagrant
Vagrantfile
vagrant@vagrant-virtualbox:~$ cd /vagrant
vagrant@vagrant-virtualbox:/vagrant$ touch hello
vagrant@vagrant-virtualbox:/vagrant$ exit
logout
Connection to 127.0.0.1 closed.
$ ls
Vagrantfile             hello
$ 

5

你尝试过在主机和虚拟机之间使用scp传输文件吗?据我记得,ssh登录和密码都是“vagrant”。

类似下面的命令可以完成此任务:

scp vagrant@<vm_ip>:<path_to_file> <path_to_dest_on_your_host>


1
如果您使用的是除默认用户“vagrant”之外的其他用户,则应在上述命令中将“vagrant”替换为您的用户名。如果您没有手动设置密码,请尝试使用您的用户名作为密码。 - typesanitizer

3
使用带有私钥的scp命令可以使这个过程更加容易!
scp -i ./.vagrant/machines/default/virtualbox/private_key -r -P2222 vagrant@127.0.0.1:/home/vagrant/somefolder ./

我遇到了错误: ssh: connect to host 127.0.0.1 port 22: Connection refused - Asmoox

1

1

Install python then run, e.g.

$ nohup python3.6 -m SimpleHTTPServer &

在输出目录中。我将此命令放入一个文件中,设置为在供应期间始终运行。这个解决方案不需要进行任何系统配置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接