windows環境でdocker使いたい。
そんなときはboot2dockerを。
boot2doker
ダウンロード
- boot2docker.exe
- boot2docker.iso
インストール
- boot2docker.exeを実行する
- 設定はデフォルトでOK
起動
- デスクトップに「Boot2Docker Start」ショートカットができてるので、実行する
- boot2dockerの起動コマンド
$ boot2docker start
をしたのと同じ状態 - 「Boot2Docker Start」ショートカットで起動したターミナル(MINGW32)を利用すること
- boot2dockerの起動コマンド
- boot2dockerにログインする
$ boot2docker ssh
- dockerというユーザーでsshログインできる
- クジラのAAが表示されればOK
Proxy設定が必要なときは
- profileにプロキシ設定を追記する
// viでprofileを開く
docker> sudo vi /var/lib/boot2docker/profile
// 追記したら保存する
dockerから出たりboot2dockerを再起動したりする方法
// dockerからログアウト
docker> exit
// boot2dockerの停止、起動
$ boot2docker stop
$ boot2docker start
docker-compose
boot2dockerのTiny Core Linuxは、再起動すると初期化されて利用できなくなるので、
再利用できるようにdocker-composeを導入する。
ダウンロード
- ダウンロードしたら、ファイルの名前を「docker-compose」に変更する
インストール
boot2docker内に転送する
取得したdocker-composeをboot2dockerのカレントディレクトリに配置する
- scpコマンドでファイルをローカルからリモートにコピーする
$ scp -P 2022 -i ~/.ssh/id_boot2docker docker-compose docker@localhost:/home/docker/docker-compose
// scp -P [ポート] -i [鍵ファイル] [コピー元ファイル] [ユーザー名]@[コピー先ホスト名]:[コピー先ファイル]
- 取得したdocker-composeを、コンソールを開いたときのカレントディレクトリに置いておけば、上記コマンドでスムーズにコピーできる。
- ポートについて
- ホストOSとboot2docker vm間のポートフォワーディング
- デフォルトでboot2docker vmのSSH(ポート22)→ホストポート2022
boot2dockerにログインして所定の位置に配置する
$ boot2docker ssh
docker > sudo mkdir -p /var/lib/boot2docker/bin
docker > sudo mv docker-compose /var/lib/boot2docker/bin
docker > sudo chmod u+x /var/lib/boot2docker/bin/docker-compose
boot2docker起動時の動作追加
/user/local/bin に対してシンボリックリンクを設定するスクリプトを追加
- bootlocal.shを編集する
docker > sudo vi /var/lib/boot2docker/bootlocal.sh
-
I
を押下し、編集(INSERT)モードにする - 以下を追記する
ln -s /var/lib/boot2docker/bin/docker-compose /usr/local/bin/docker-compose
-
Esc
で編集モードを終了する -
:w
を入力(下部に入力される)し、Enterで保存する -
:q
を入力、Enterでviを終了する
boot2dockerを再起動して設定を反映させる
docker> exit
$ boot2docker stop
$ boot2docker start
TIPS
viでファイルを編集する
viの主なコマンド
- viでファイルを開く
$ vi <ファイル名>
- 編集(INSERT)モード
I
- モード終了
Esc
- 保存
:w
を入力し、Enter - 終了
:q
を入力しEnter - 保存せずに終了
:q!
を入力しEnter
データの永続化
- boot2docker内にファイルを作成しても boot2dockerを再起動すると初期化されて消えてしまう。
- 対策の一例
- VirtualBoxの共有フォルダ機能を利用(boot2docker1.4〜)
- ローカルのC:/Users配下が、boot2dockerの/c/Users配下に共有されているので、/c/Users/配下でファイルを管理する