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 | 高速、差分対応 | 大量ファイルや定期バックアップ |
作業内容や環境に応じて、最適な手法を選びましょう!
ディスカッション
コメント一覧
まだ、コメントがありません