Vagrantの仮想マシンからローカルにファイルをコピーする4つの方法
Vagrantの仮想マシンからローカルにファイルをコピーする4つの方法
Vagrant環境で作成したファイルを、ローカル(ホスト側)にコピーする方法をいくつか紹介します。目的や状況に応じて最適な方法を選びましょう。
Contents
方法①: 共有フォルダ(/vagrant)を利用
Vagrantでは、ゲストOS内の/vagrantディレクトリがホスト側と同期されています。Vagrantfileと同じディレクトリとリンクしているため、ここを経由すればファイルを簡単にやり取りできます。
手順:
- ゲストOS内で対象ファイルを
/vagrantにコピー
|
1 |
cp /home/vagrant/sample.txt /vagrant/ |
- ホスト側(ローカル)の同一ディレクトリで確認
|
1 |
ls ./sample.txt |
補足: /vagrantは双方向で同期されているため、逆にローカルから仮想マシンへファイルを渡すこともできます。
方法②: vagrant-scp プラグインを使う
一時的にファイルをコピーしたい場合は、このプラグインが便利です。
プラグインのインストール:
|
1 |
vagrant plugin install vagrant-scp |
ファイルのコピー(ゲスト → ホスト):
|
1 |
vagrant scp default:/home/vagrant/sample.txt ./sample.txt |
仮想マシン名がdefaultでない場合は適宜置き換えてください。
方法③: scp + vagrant ssh-configを使う
SSHの詳細情報をもとに、scpで安全にファイルをコピーする方法です。
1. SSH情報を確認:
|
1 |
vagrant ssh-config |
2. ファイルのコピー:
|
1 |
scp -P 2222 -i /path/to/private_key vagrant@127.0.0.1:/home/vagrant/sample.txt ./sample.txt |
出力結果のPortやIdentityFileは各環境で異なりますので、出力に合わせてコマンドを調整してください。
方法④: rsyncで高速コピー(大量のファイル向け)
多くのファイルをコピーしたいときはrsyncが便利です。
|
1 |
rsync -e "ssh -i /path/to/private_key -p 2222" vagrant@127.0.0.1:/home/vagrant/data/ ./local_data/ |
差分コピーにも対応しており、再実行も高速です。
まとめ
| 方法 | 特徴 | 適した場面 |
|---|---|---|
| /vagrant 共有フォルダ | 最も簡単、常に同期 | 少量のファイルやテスト |
| vagrant scp | コマンド一発で完結 | 一時的なファイル転送 |
| scp + ssh-config | 柔軟、スクリプトにしやすい | 自動化や外部連携 |
| rsync | 高速、差分対応 | 大量ファイルや定期バックアップ |
作業内容や環境に応じて、最適な手法を選びましょう!








ディスカッション
コメント一覧
まだ、コメントがありません