VirtualBoxのディスク容量を拡張する
VirtualBoxで作業をしていると、想定よりディスクを使用してしまい容量不足になることがあると思います。
作業内容そのままでディスク容量を拡張する手順を残しておきたいと思います。
ディスク容量拡張の手順
・新規ディスクを追加する
・コマンドでHDDをクローンする
・古いディスクをアンマウント
新規ディスクを追加する
まず対象VMの設定画面からストレージメニューを開きます。
ストレージ一覧の右側にあるディスクの+マークを押します。
デフォルト選択が既存ディスクになっていますが間違えないように「新規ディスクの作成(N)」を押します。
するとハードディスクのタイプ選択が求められるので前とVDIを選択して進めます。
ディスクのサイズについては好きな方を選択してください。
ちなみに固定サイズの方が少しだけ速度が速くなるようです。
最後にディスクの名前と容量を決めたら「作成」ボタンを押します。
注意点としては既存のディスクよりも大きい容量にするようにしましょう。
そうしないとこの後行うディスクのクローン作業がおかしくなると思います(^^;
新しいディスクが作成されました。
コマンドでHDDをクローンする
ストレージを選択すると右側にファイルパスが表示されると思います。
ターミナルを開き、この VDI ファイルが置いてあるところまで移動しましょう。
移動したら下記のコマンドを実行してディスクのコピーを行います。
パーセンテージが表示され、100% になれば完了です。
$ VBoxManage clonehd --existing "Ubuntu 14.04 LTS.vdi" "New Ubuntu 14.04.vdi" 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Clone medium created in format 'VDI'. UUID: 4cc3e925-****-4d78-****-5abfe3e36cf8
古いディスクをアンマウント
無事にディスクのコピーが終わったら、起動させるディスクを変更します。
先ほどのストレージ設定画面で古いディスクを削除します。
削除といっても設定が削除されるだけで物理的にはファイルとして残っていますので安心してください。
古いディスクを選択して下部にあるディスクの「ー」ボタンを押すと削除が完了します。
最終的にはこんな感じになると思います。
ここまででディスクの差し替えは完了です。
VM上でパーティション調整(BIOS作業)
パーティションの調整は BIOS 上で行う必要があります。
まず下記のサイトで GParted パーティション編集ツールのイメージファイルをダウンロードします。
GParted Live CD/USB/HD/PXE Bootable Image の Stable Releases にある iso ファイルをダウンロードします。
2016年2月25日時点での最新版は「Download gparted-live-0.25.0-3-i686.iso」のようです。
http://gparted.org/download.php
ダウンロードしたら、パーティションを変更したい VM の設定画面を開きストレージメニューを開きます。
CD設定部分へ先ほどダウンロードしたイメージファイルを設定して IDE プライマリマスターに設定します。
その状態で VM を起動すると BIOS 上で GParted が立ち上がります。
項目2つ目の「Other modes of GParted Live」を選択します。
次は一番上の「GParted Live (Default settings, KMS)」を選択します。
keymap について質問されますが、「Don't touch keymap」を選択したままエンターを押します。
次に言語設定を聞かれるため、「Japan」の 15 を入力してエンターを押します。
最後にモードを聞かれますが、何も入力しなくても大丈夫なのでそのままエンターを押します。
こんな画面が起動します。
実はこの画面…
もうパーティション設定が終わった状態です。
途中のキャプチャを撮るのを完全に忘れていました。。
というわけで、足りない部分は言葉で説明しながら手順を紹介したいと思います!
構成として、まずメインストレージ領域があり、次に linux-swap 領域、最後に未割り当て領域になっていると思います。
この状態のままだと後方に空き領域がなく、メインストレージの領域を拡張することができません。
そのためまず最初に linux-swap 領域を大胆に削除します。
次にその親の領域も削除します。
メインストレージである /dev/sda1 以降に未割り当て領域しかない状態になりました!
この状態で /dev/sda1 のリサイズ作業を行います。
後方に 2GB ほどの領域を残した状態で、好きなサイズまで拡張していきます。
設定が終わったら「リサイズ/移動」ボタンで確定させます。
次に先ほど消してしまった linux-swap 領域をもう一度設定します。
まずは未割り当て領域全てを拡張領域として追加します。
未割り当て領域を右クリックして「New」を選択します。
種類のところを「拡張パーティション」に設定して「Add」ボタンを押します。
こんな感じになったと思います。
これで新規パーティション#1 の配下に未割り当て領域が移動したと思います。
この状態から未割り当て領域を右クリックし、さらに「New」で linux-swap 領域を作っていきます。
ファイルシステムのところを「linux-swap」に変更して「Add」ボタンを押します。
こちらは「論理パーティション」で大丈夫です。
こんな感じになりました。
これでパーティションの設定自体は完了です。
「Apply」ボタンを押して設定したパーティションを確定させましょう!
これでパーティション設定は全て完了です。
VM をシャットダウンし、先ほど設定していた CD ブートからイメージファイルを取り出して再起動すれば無事にディスク容量が増えていると思います。
早速ログインして容量を確認してみます。
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 14G 5.4G 7.6G 42% / none 4.0K 0 4.0K 0% /sys/fs/cgroup udev 991M 12K 991M 1% /dev tmpfs 201M 900K 200M 1% /run none 5.0M 4.0K 5.0M 1% /run/lock none 1002M 72K 1001M 1% /run/shm none 100M 28K 100M 1% /run/user
空き領域がだいぶ増えていますね!
同じような状況の方の参考に少しでもなれば幸いですm(_ _)m
Vagrant を使ったVM環境構築
前回 VirtualBox を利用して、Ubuntu に Docker と SSH を入れるということをしました。
どうやら Vagrant を使うともっともっと簡単に環境構築が行えるようなので実際に試してみました。
※MacOSXで行っております。
Vagrantってなに?
VirtualBox のようなVM環境をとにかく簡単に一元的に扱いやすくしてくれるツールです。
具体的になにをしてくれるのか例を挙げるとこんな感じ。
・SSH接続設定が初めから済みの状態でVM環境が作られる
・面倒な設定なくコマンド1つでVM環境が作成できる
(ざ〜〜〜っくりですが2つあげました)
とにかくすぐに作業に取りかかれると言う点ではものすごい良いツールだと思います。
ただ、個人的には一度は Vagrant を使わず構築してみるといいと思います。
その方が便利になった点がよりよくわかります。
Vagrant の初期設定
パッケージのインストールが完了したら、MacOS のターミナルを起動して以下のコマンドを叩くだけでインストールできます。
$ mkdir Vagrant $ cd Vagrant $ vagrant init --minimal ubuntu/trusty64
まず適当にフォルダを作成して、その中で「vagrant init」コマンドを実行します。
minimal オプションは必要最小限の Vagrantfile を作成しますという指示です。
あってもなくても大丈夫ですが、今回は特に気にせず最小構成で作成します。
コマンドが正常に終了すれば Vagrantfile と言うものが作成されていると思います。
Vagrant が VM を作成するときに使う設定ファイルですが、中身はこんな感じになっています。
Vagrant.configure(2) do |config| config.vm.box = "ubuntu/trusty64" end
Vagrant の VM 作成
さて、実はもうすでに Vagrant を使う準備がすべて整いました!
以下のコマンドを叩いて実際に VM を起動してみましょう。
$ vagrant up
それなりに時間がかかりますが、しばらく待っていると起動が完了します。
正常に終了していれば VirtualBox の画面にも新しく VM が追加されています。
Vagrant の SSH 接続
そして Vagrant を導入する一番のメリット?と言ってもいい部分ですが、
すでに SSH 接続設定などが終わった状態の VM が起動されているため、実際につないでみたいと思います。
以下のコマンドを叩いてみましょ。
$ vagrant ssh Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 3.13.0-79-generic x86_64) * Documentation: https://help.ubuntu.com/ System information as of Wed Feb 24 03:17:38 UTC 2016 System load: 0.42 Processes: 80 Usage of /: 3.5% of 39.34GB Users logged in: 0 Memory usage: 25% IP address for eth0: 10.0.2.15 Swap usage: 0% Graph this data and manage this system at: https://landscape.canonical.com/ Get cloud support with Ubuntu Advantage Cloud Guest: http://www.ubuntu.com/business/services/cloud 0 packages can be updated. 0 updates are security updates. vagrant@vagrant-ubuntu-trusty-64:~$
つながりました!!素晴らしいですね!
VirtualBox内のUbuntuへSSH接続
MacOSXにインストールされているVirtualBoxで起動されたUbuntuで作業するとレスポンスがもっさりしていてストレスたまりますよね?
なのでUbuntuに対してMacOSの端末からSSH接続をすることにしました。
VirtualBoxの設定
VirtualBoxのメニューバーから「環境設定...」を開きます。
設定ウィンドウの「ネットワーク」の「ホストオンリーネットワーク(H)」タブを選択します。
画面右側の「+」マークを押してネットワークアダプターを追加します。
次にドライバーマークのアイコンをクリックして設定内容を見てみます。
環境によって多少違うと思いますが、こんな感じで設定されているかと思います。
バーチャルホスト側の設定
次にUbuntuがインストールされているバーチャルホスト側の設定を行います。
VirtualBoxの画面上で対象のバーチャルホストを選択した状態で「設定(S)」ボタンを押します。
設定ウィンドウの「ネットワーク」を選択すると以下のような画面になると思います。
「ポートフォワーディング(P)」ボタンを押してポートフォワード設定画面を開きます。
画面右側の「+」マークを押してポートフォワード設定を追加します。
こんな感じで、ポート44444に対してポート22を割り当ててみました。
設定が終わったら「OK」ボタンを押して閉じます。
Ubuntu側のSSHインストール
次にUbuntuにSSHサーバをインストールして実行します。
$ sudo apt-get update // 念のため最新にアップデートしておきます。
$ sudo apt-get install openssh-server
もし、自動的にSSHサーバが起動していない場合は手動で起動します。
$ sudo service ssh start
MacOSX側から接続
$ ssh <username>@192.168.99.100 ECDSA key fingerprint is SHA256:sO+PooxempCrdXg1BeKtGMS3DR3cdL0uG**********. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.99.100' (ECDSA) to the list of known hosts.
初回はこんな感じで応答を求められると思います。
2回目以降は何も聞かれることなくすんなり接続ができると思います。
これでいちいちUbuntuのGUIを立ち上げなくてもコマンドのみでサクサク作業ができるようになりました。
作業効率って大事ですよね!
Docker 主要コマンド一覧
みなさん Docker 使ってますか?
この記事ではDockerのコマンドについてまとめてみました。
オプションなど細かく分類するとまだまだたくさんありますが、実務でよく使うものを集めてみました。
Docker 主要コマンド一覧
ローカルにあるイメージ一覧を取得する
$ docker images
コンテナ一覧を取得
$ docker ps -a
オプションについて
※) -a オプションは停止中のコンテナも含めて表示する
コンテナの停止と開始と再始動
$ docker stop <コンテナ名> $ docker start <コンテナ名> $ docker restart <コンテナ名>
コンテナの強制終了
$ docker kill <コンテナ名>
コンテナの作成&実行
$ docker run -it --name <作成コンテナ名> <リポジトリ名:タグ名> /bin/bash
オプションについて
※) -it オプションは --interactive, --tty オプションでコンテナとbashで対話するためのものです。
※) 実行するとコンテナ内のbashにプロンプトが切り替わります。
コンテナの作成&実行(ポートを指定する場合)
$ docker run -it --name -p 33333:80 <作成コンテナ名> <リポジトリ名:タグ名> /bin/bash
※) 33333ポートに対してアクセスするとこのコンテナの80ポートへ流れる
起動中のコンテナに入る
$ docker exec -it <コンテナ名> /bin/bash
コンテナの各種情報を出力
$ docker info <コンテナ名> $ docker inspect <コンテナ名>
コンテナを削除
$ docker rm <コンテナ名>
イメージを削除
$ docker rmi <イメージ名>
イメージの検索
$ docker search <検索イメージ名>
イメージの取得
$ docker pull <リポジトリ名:タグ名>
Mac + VirtualBox + Ubuntu 14.04 + Docker による開発環境構築
仕事でDockerを利用して開発環境を作る機会が頂けましたので環境構築の手順の共有と備忘録として記事を書いていきたいと思います。
各ソフトウェアのバージョン情報など
・MacOSX 10.11.1
・VirtualBox 5.0.14
・Ubuntu 14.04 LTS
・Docker 1.10
VirtualBoxをインストール
VirtualBoxはこちらから最新版をダウンロードできます。
https://www.virtualbox.org/
こちらは特に難しいところはないので、画面に従ってインストールしてください。
VirtualBoxへUbuntuをインストール
VirtualBoxのインストールが終わったら次は実際にUbuntuをインストールします。
まずはUbuntuのイメージファイルが必要なので下記のサイトからダウンロードします。
http://www.ubuntulinux.jp/download/ja-remix
イメージファイルがダウンロードできたら、VirtualBoxの左上にある「新規(N)」ボタンを押して
Ubuntu用のバーチャル環境を作成していきましょう!
まずはバーチャル環境に名前を付けます。それ以外の項目はそのままで良いでしょう。
次に、メモリサイズの指定を行います。
僕は2GBを指定してみました。マシンのメモリ容量と相談して適当に設定しましょう。
次はハードディスクの設定項目です。
仮想ハードディスクを設定するかどうかですが、初回であれば何もないはずですので「仮想ハードディスクを作成する(C)」を選択しましょう。
ハードディスクのファイルタイプは「VDI (VirtualBox Disk Image)」を選択します。
物理ハードディスクの設定は今回は「可変サイズ(D)」にしました。
固定サイズにすると、作成時に少し時間がかかる代わりに処理速度が上がるようですが、ディスク容量の節約のために今回は可変サイズで作成します。
最後にディスク容量を指定して作成します。
Ubuntuをインストールするには最低7GBの容量が必要なため、少し余裕をもたせて8GBとしました。
これで無事にUbuntu用のバーチャル環境の作成が完了です!
それでは「起動(T)」ボタンを押してUbuntuを起動してみましょう!
するとこんな画面が表示されるかと思います。
ここで先ほどダウンロードしておいたUbuntuのイメージファイルを選択して「Start」ボタンを押します。
そうすると起動時にこのイメージファイルがロードされてUbuntuのインストール画面が表示されます。
右の「Ubuntu をインストール」ボタンを押してUbuntuをインストールしていきましょう。
・必要最低限のHDD空き容量があること
・インターネットに接続されていること
この2つがクリアできていればインストールが可能です。
(たぶん大丈夫になってるはず)
警告と書いてあって若干怖いですが、「ディスクを削除してUbuntuをインストール」を選択します。
初回インストールなので特になくなって困るものはありませんので大丈夫です。
住んでいる地域を選択します。
キーボード設定ですが、特に指定がなければそのまま続けます。
ここまで設定が終わるとOSのインストールが始まりますのでしばらく待ちます。(約20分程度)
インストールが終わると再起動が求められます。
再起動した結果が以下の画面になります。
無事にUbuntuをインストールすることができました!
ご覧の通りインストール完了後の初期状態だと解像度がだいぶ小さいです…。
作業効率化のためにまずは解像度の設定を行いましょう。
初期状態だと640x480しか選択することができません。
Ubuntuが表示されているウィンドウのウィンドウメニューから
「Devices」→「Insert Guest Additionas CD image...」を選択します。
すると以下のようなポップアップが表示されるので「実行する」ボタンを押します。
パスワードが求められるのでUbuntuのインストール時に設定したパスワードを入力して「認証する」ボタンを押します。
コマンドラインが起動して何やらインストールが始まります。
画面に「Press Return to close this window...」と表示されたら完了です。
リターンキーを押してウィンドウを閉じましょう。
その後、バーチャル環境を再起動すると640x480以外の解像度も選べるようになっているはずですので、環境に合わせて好きなものを設定しましょう。
UbuntuへDockerをインストール
さて、ようやくUbuntuがインストールできたところで次は本題のDockerをインストールしていきたいと思います!
インストールと聞くと apt-get や yum が思い浮かぶかと思いますが、apt-getを利用すると少し古いバージョンがインストールされるようです。
今回は wget で最新をインストールしていきたいと思います。
$ wget -qO- https://get.docker.com/ | sh
インストールが終わりました。
最後にこんなことが書いてあります。
If you world like to use Docker as a non-root user, you should now consider adding your user to the "docker" group with something like: sudo usermod -aG docker kabayama Remember that you will have to log out and back in for this to take effect!
ようするに、ルートユーザ以外で実行したい場合はこのコマンドを実行しておいてね!ってことみたいです。
それでは Docker コマンドでバージョン確認をしてみましょう。
$ docker version
バージョン情報が表示されました!
さっそく Docker の Hello World を実行してみたいと思います!
あれ・・・。エラーになってしまいました。
この後あちこちググりながら1時間ほどいろいろ試したのですが、結局OSを再起動したら sudo 付けずに一般ユーザで実行できるようになりました。
環境構築手順としてはそれほど多くはありませんが、実際にやってみるといろいろハマるところがあり2〜3時間を要してしまいました。
おそらくこのコマンドが有効化されるために、OSの再起動が必要なようですね。
sudo usermod -aG docker kabayama
再起動しても解決されない場合は、Dockerサービスが上がっていない可能性があるので以下のコマンドで解決するかもしれません。
sudo service docker start
今回はかなり手こずってしまいましたが、次回からはすんなり構築できるようにしっかり覚えたいと思います。
同じような問題でハマっている方、これからDockerを使ってみようという方の少しでも参考になれば嬉しいです。