Debian¶
Docker は以下の Debian バージョンをサポートしています。
Debian testing stretch (64-bit)
Debian 8.0 Jessie (64-bit)
Debian 7.7 Wheezy (64-bit) (バックポートが必要)
注釈
以前に Docker を apt
でインストールしていた場合は、 apt
ソースを新しい Docker リポジトリに更新してください。
動作条件¶
Docker は 64bit でインストールされた何らかの Debian バージョンを必要とします。さらに、kernel は少なくとも 3.10 以上が必要です。最新の 3.10 マイナーバージョンか、それよりも新しいバージョンが利用可能です。
3.10 よりも低いカーネルは、Docker コンテナ実行時に必要な一部の機能が足りません。古いバージョンは既知のバグがあります。その影響により、特定条件下でデータの損失や定期的なカーネルパニックを引き起こします。
現在のカーネル・バージョンを確認するには、ターミナルを開き、 uname -r
を使ってカーネルのバージョンを確認します。
$ uname -r
さらに、 Debian Wheezy の利用者はバックポートが必ず必要です。Wheezy でバックポートを有効にするには、次のようにします:
マシンにログインし、
sudo
あるいはroot
権限のターミナルを開きます。
任意のエディタで
/etc/apt/sources.list.d/backports.list
ファイルを開きます。
ファイルが無ければ作成します。
既存のエントリがあれば削除します。
Debian Wheezy にバックポートのエントリを追加します。
エントリの例
deb http://http.debian.net/debian wheezy-backports main
パッケージ情報を更新します。
$ apt-get update
apt ソースの更新¶
Docker 1.7.1 以上は Docker の apt
リポジトリに保管されています。 apt
が新しいリポジトリにあるパッケージを使えるように設定します。
まだであれば Debian サーバに特権ユーザでログインします。
ターミナルのウインドウを開きます。
古いリポジトリをパージします。
$ apt-get purge lxc-docker*
$ apt-get purge docker.io*
パッケージ情報を更新します。 APT が
https
メソッドで動作することを確認し、CA
証明書がインストールされるのを確認します。
新しい
GPG
鍵を追加します。
$ apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
/etc/apt/sources.list.d/docker.list
ファイルを好みのエディタで開きます。
ファイルが存在しなければ、作成します。
既存のエントリがあれば削除します。
Debian オペレーティング・システム向けのエントリを追加します。
利用可能なエントリは以下の通りです。
Debian Wheezy
deb https://apt.dockerproject.org/repo debian-wheezy main
Debian Jessie
deb https://apt.dockerproject.org/repo debian-jessie main
Debian Stretch/Sid
deb https://apt.dockerproject.org/repo debian-stretch main
ファイルを保存して閉じます。
APT
パッケージのインデックスを更新します。
$ apt-get update
APT
が正しいリポジトリから取得しているか確認します。
$ apt-cache policy docker-engine
これで apt-get update
を実行すると、 APT
は新しいリポジトリから取得します。
Docker インストール¶
Docker インストール前に、必要条件で説明した通り、 APT
リポジトリを正しく設定してください。
APT
パッケージのインデックスを更新します。
$ sudo apt-get update
Docker をインストールします。
$ sudo apt-get install docker-engine
docker
デーモンを開始します。
$ sudo service docker start
docker
が正常にインストールされたか確認します。
$ sudo docker run hello-world
このコマンドは、テストイメージをダウンロードし、コンテナとして実行します。コンテナを実行すると、メッセージ情報を表示して、終了します。
root 以外のアクセス指定¶
docker
デーモンは常に root
ユーザとして実行され、 docker
デーモンは TCP ポートの替わりに Unix ソケットをバインドします。デフォルトでは、Unix ソケットは root
ユーザによって所有されており、他のユーザは sudo
でアクセスできます。
あなた(もしくは Docker インストーラ)は、docker
という名称のグループを作成し、そこにユーザを追加します。 docker
デーモンが起動すると、docker
グループの所有者により Unix ソケットの読み書きが可能になります。 docker
デーモンは常に root
ユーザとして実行しなくてはいけませんが、 docker
グループのユーザであれば、 docker
クライアントを実行できますので、 sudo
設定を全てのクライアントのコマンドに追加する必要はありません。Docker 0.9.0 移行は、 -G
フラグを使って別のグループを指定できます。
警告
docker
グループは root
ユーザ相当です。システム上のセキュリティに対する影響の詳細は、 Docker デーモンが直面する攻撃 をご覧ください。
例:
# docker グループが存在していなければ追加します。
$ sudo groupadd docker
# 接続するユーザ "${USER}" を docker グループに追加します。
# 適切なユーザ名に変更してください。
# この設定が反映されるのは、ログアウト後に、戻ってきてからです。
$ sudo groupadd docker
$ sudo gpasswd -a ${USER} docker
# Docker デーモンを再起動します。
$ sudo service docker restart
アンインストール¶
Docker パッケージをアンインストールします。
$ sudo apt-get purge docker-engine
Docker パッケージと必要の無い依存関係をアンインストールします。
$ sudo apt-get autoremove --purge docker-engine
上記のコマンドは、イメージ、コンテナ、ボリュームやホスト上の設定ファイルを削除しません。イメージ、コンテナ、ボリュームを削除するには次のコマンドを実行します。
$ rm -rf /var/lib/docker
ユーザが作成した設定ファイルは、手動で削除する必要があります。