にほんブログ村 IT技術ブログへ
にほんブログ村

Linux ブログランキングへ

2016年04月29日

Ubuntu改造日記 超軽量コンテナ型 仮想OS Docker動作テスト編 その32

Cg1xDuJUgAEhR0v.jpg

今回は久しぶりにx86のUbuntuでDockerをテストしてみました。
Dockerはコンテナ型の仮想OSシステムです。
といっても大げさな物でなく、最小スペックのchrootみたいなものです。
従来とても面倒だった仮想OSの仕組みが
Dockerなら簡単に構築して消せます。
テストにサーバに遊びに持ってこいです。
是非試してみてください。

○Dockerとは
Dockerとはコンテナ型の仮想OSです。
仮想OSとはchrootやQemu KVMハイパーバイザー、
DOSboxなどのエミュなどをひっくるめた言葉のイメージで
DockerはLinuxOSの上に別のLinux環境を作って動作運用出来る仕組みです。
Chrootの改良版です。

コンテナ型という言葉はDockerの性質を
よく表現できている言葉だと思いますが、
一度も使った事がない人にはさっぱり分らないはずです。
簡単に言うと、普通仮想OSを入れて使う際には、

@OSディスクのダウンロード
AHDDイメージ作成、フォーマット
BOSインストール作業
C初期設定
Dアップデート、パッケージインストール

と言った作業が必要になり、大抵1〜2日作業になって大変です。
非常に面倒です。
Dockerの場合は最小限のOSイメージが既にあって、
65MB程度をダウンロードしてさらにアプリを自動インストール、
自動実行するスクリプトを使って15〜20分程度で
仮想OS環境を作成可能です。ネット速度にもよりますが。
作った仮想OSのイメージはコピーして流用するも良し、
直ぐ消して入れなおすも良し、

仮想OS環境を使わない場合、関連パッケージを大量に入れられて
直ぐ太って大きくなります。消すのは難しいです。
サーバや試験的な環境を残すと最悪再インストールになるので
そのままは使いたくないという事があります。
またマルチユーザー環境でも便利で、クラウド型サーバに適しており
数百人単位の環境を一つのサーバに構築出来ます。
OSイメージの環境を船やトラックのコンテナに例えて、
入れたり消したりコピーしたりが簡単に出来るのが長所です。
Linux KernelでLXCのモジュール対応が必要。

●長所
・とにかく最小限の仮想OS環境にこだわっており最小
 作業時間の短縮に大きなこだわりがあります
・エミュレーションではないので非常に高速
・サーバ環境の構築には便利
・試験的な運用、テストして消すには最適
・クラウド型やマルチユーザーサーバに効果的
・一つのアプリ環境に一つのOS環境を自動で作成出来る

●短所
・母体となるOSがLinuxだけである
 WindowsやMacで使う場合、VirtualBoxかVMwareで
 Linuxを起動してエミュレータの上でDockerを動かす必要
 重くなる
・CUIのアプリに特化しており、GUI環境では使いにくい
・バージョンアップの更新が早すぎて、直ぐに互換性が悪くなる
・Linux KernelでLXCのモジュールが必要で、
 Android、Chromebook、組み込み系ではビルドし直さないと使えない
・性質上、常時Root権限でログインするため、セキュリティなど
 リスクが残る
・x86以外はOSイメージが殆どない


○Ubuntu上でDockerのインストール
公式HPに詳しく書いてあります。
まずはそのままコピペしてみましょう。

 https://docs.docker.com/engine/installation/linux/ubuntulinux/

まずはコピペから。

 sudo apt-get update
 sudo apt-get install apt-transport-https ca-certificates
 sudo apt-get install docker.io
 sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

本家Dockerのレポジトリを追加。
更新が早すぎるので、直接入れるしかなさそうです。

 sudo sh -c "echo deb https://get.docker.com/ubuntu docker main\
> /etc/apt/sources.list.d/docker.list"

保存したらインストール

 sudo apt-get update
 sudo apt-get install lxc-docker
 curl -sSL https://get.docker.com/ubunt/ | sudo su
docker daemon &
sudo docker run -i -t ubuntu /bin/bash

dockerのDaemonが後ろで動いている前提です。
必要なら再起動してDockerのDaemonを実行させましょう。
Ubuntuが起動して自動でapt-getされるはずです。
自分の好きなパッケージを入れてみましょう。

○Dockerfile
Dockerの自動スクリプトにあたるのがDockerfileです。
gedit Dockerfile

FROMでOSの指定から始まってRUNでコマンドを追記していきます。
一例です。

 FROM ubuntu:trusty
 RUN apt-get update && apt-get -y upgrade
 # wgetインストール
 RUN apt-get -y install nano wget

好きなコマンドを入れましょう。
参考までにネットでコピペすると良いです。
Dockerfileを保存時て実行

 sudo docker build .

こうやってDockerを自動実行します。

○Dockerコマンド
基本的なコマンドをメモします。

・docker pull
dockerのイメージファイルをダウンロードします。

・docker image
dockerのイメージ一覧を確認

・docker run (オプション) (dockerイメージ名:タグ名)(Dockerで実行するコマンド)
Dockerコンテナ作成と実行

・docker stop(コンテナID|コンテナ名)
バックグラウンドのDockerコンテナを終了

・docker rm (コンテナID|コンテナ名)
Dockerコンテナを削除

○まとめ
少し導入に手間がかかりますが、コピペで対応します。
自分でDockerコマンドが使えるようになると
色々な仮想OS環境を自在に使うことが出来ます。
サーバやテストなど。
是非試してみてくださいな。



posted by kapper at 14:17 | Comment(0) | Ubuntu
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

にほんブログ村 IT技術ブログへ
にほんブログ村

Linux ブログランキングへ