もう1つの軽量仮想化アプローチは、いわゆるLinuxコンテナで、オペレーティング・システム・レベルの仮想化を提供します。LXCでは、仮想マシンを実行するオーバーヘッドがないため、ユーザーは軽量コンテナ・サンドボックス内で標準Linuxオペレーティング・システムの複数のインスタンスを実行できます。コンテナは、複製可能な開発/テスト環境を構築する場合や、安全なサンドボックス内でアプリケーションをデプロイする場合に便利です。
Linuxコンテナのデプロイを容易にするために開発されたオープンソースツールで、UbuntuやRed Hatなどの主要なLinuxディストリビューションに採用され、コンテナ技術のデファクトスタンダードに急速になりつつあります。
このチュートリアルでは、Ubuntu 14.04上でDockerの助けを借りてLinuxコンテナを管理する方法を紹介します。注意:Ubuntuの以前のバージョンでは、手順が若干異なる場合があります。
現在、Ubuntuで利用可能なDockerパッケージは64ビットシステムのみをサポートしています。32ビットマシンで実行するには、ソースコードを使って32ビット版のDockerをビルドする必要があります。
Dockerのインストール
Dockerのインストールはapt-getコマンドで簡単にできます。
$ sudo apt-get install docker.io
非 root ユーザーが Docker を実行できるようにするには、自分自身を docker グループに追加します。以下のコマンドは、現在のユーザーがroot権限なしでDockerを実行できるようにします。
$ sudo usermod -a -G docker $USER
グループメンバーシップの変更を有効にするには、ログアウトしてからログインし直してください。
次に、Docker設定ファイルを編集して、Dockerバイナリコードの場所を更新します。
$ sudo vi /etc/default/docker.io
DOCKER="/usr/bin/docker.io"
Dockerサービスを再起動します。
$ sudo service docker.io restart
Dockerコンテナの管理
Ubuntu OS用の新しいDockerコンテナを起動するには、まずUbuntu Dockerイメージ・ファイルを入手する必要があります。以下のコマンドは、ネットワーク経由でDockerイメージファイルをダウンロードします。
$ docker pull ubuntu
以下のように、Ubuntu Dockerを対話モードで起動することができます。*** パラメータ"/bin/bash "は、コンテナが起動したらコンテナ内で実行されるコマンドです。
$ docker run -i -t ubuntu /bin/bash
上記のコマンドを実行すると、すぐにUbuntuコンテナが起動し、コンテナ内にシェルプロンプトが表示されます。この時点で、サンドボックス環境内で標準のUbuntuオペレーティング・システムにアクセスできるはずです。
Dockerコンテナを終了するには、コンテナ内のプロンプトで「exit」と入力します。
さまざまな形式のコンテナを起動できます。例えば、Fedora コンテナを起動するには、次のコマンドを実行します:
$ docker.io run -i -t fedora /bin/bash
ローカルに Fedora Docker イメージファイルがない場合、このコマンドはまず自動的にイメージファイルをダウンロードし、それから Docker を起動します。
特定のディストリビューション・バージョンを採用したコンテナを起動したい場合は、それも可能です。例えば、Ubuntu 13.04 Dockerを起動するには、以下のコマンドを実行します:
$ docker.io run -i -t ubuntu:13.04 /bin/bash
コンテナネットワーク
DockerはLinuxブリッジを使ってコンテナ同士を相互接続し、外部ネットワークに接続します。Dockerをインストールすると、デフォルトでdocker0 Linuxブリッジが自動的に組み立てられるはずです。作成した各コンテナはdocker0ブリッジインターフェースに接続します。
カスタムLinuxブリッジ
必要であれば、カスタム Linux ブリッジを使用してコンテナを相互接続することもできます。これを行うには、カスタムブリッジを作成し、以下のように設定します。このブリッジに別のサブネットを割り当て、そのサブネットからDockerにIPアドレスを割り当てることができます。ここではDockerのサブネットとして10.0.0.0/24を使用します。
$ sudo apt-get install bridge-utils
$ sudo brctl addbr br0
$ sudo ifconfig br0 .1 netmask 255.255.255.0
Dockerにカスタムブリッジを使用させるには、/etc/default/docker.ioのDOCKER_OPTS変数に"-b=br0 "を追加し、Dockerサービスを再起動します。
$ sudo service docker.io restart
この時点で、新しいコンテナはbr0に接続され、IPアドレスは10.0.0.0/24から自動的に割り当てられます。
その他のカスタマイズ
Dockerのデフォルトのネットワーク設定をカスタマイズする方法は他にもいくつかあり、主に/etc/default/docker.ioのDOCKER_OPTS変数を変更します。
- "-dns 8.8.8.8 -dns 8.8.4.4": コンテナが使用する DNS サーバーを指定します。
- "-icc=false":コンテナ同士を隔離しておきます。
障害解決
1.docker.ioコマンドを実行すると、以下のエラーが発生します。
dial unix /var/run/docker.sock: no such file or directory((そのようなファイルやディレクトリはない)
このエラーはDockerデーモンが起動していないために発生する可能性があります。Dockerデーモンのステータスを確認し、まず起動していることを確認してください。
$ sudo service docker.io status
$ sudo service docker.io start





