5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Docker Engine をDocker リポジトリからインストールする(Ubuntu 15.04, 14.04 LTS)

Last updated at Posted at 2016-01-02

Ubuntu 15.04, 14.04 LTS にDocker Engine をインストールする

Ubuntu でDocker を使うときのために、Docker のapt リポジトリから
https://get.docker.com/ からスクリプトを取得、実行してインストールする方法がありましたが、最近はDocker Engine のリポジトリを追加してapt-get でインストールする方法が出てきているようなので、その手順を日本語でまとめておきました。

最速で

Gist にまとめておいたので、以下のコマンドを実行すればインストールできます(Ubuntu 15.10, 14.04 LTS で動作確認済み)。

InstallDockerEnginecommand
# curl https://gist.githubusercontent.com/TsutomuNakamura/36920d251c81ec6638f7/raw | sudo bash

以上でインストールは完了です。これより以下の記述は、手順をひとつひとつやっていく場合の解説になります。

要件

  • 要件
Ubuntu のバージョン(こちらで動作確認したもの) 15.10, 15.04
アーキテクチャ 64 bit
kernel 3.10 以上

kernel のバージョンの確認

kernel のバージョンを確認します。

uname-r
$ uname -r
3.19.0-25-generic

パッケージの認証用キーの追加

apt-key コマンドを使用してapt パッケージ認証用の鍵を登録します。

apt-key
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

リポジトリの追加

Docker Engine をインストールするためのリポジトリを/etc/apt/sources.list.d/docker.list に追加します。
存在しない場合はファイルを新規作成、既に何かが書かれている場合はそれを一旦削除して新しくエントリを追加してください。
登録する内容は以下のコマンドの通りです。

リポジトリのエントリ追加
$ . /etc/lsb-release
$ echo ${DISTRIB_CODENAME,,}
trusty
$ echo deb https://apt.dockerproject.org/repo ubuntu-${DISTRIB_CODENAME,,} main | sudo tee /etc/apt/sources.list.d/docker.list

apt パッケージインデックスの更新

apt-get update コマンドを実行してパッケージインデックスを更新します。

aptパッケージindexの更新
$ sudo apt-get update

古いDocker を削除する

古いrepo からインストールしたDocker がある場合は事前にそれを削除しておきます。

lxc-dockerの削除
$ sudo apt-get purge lxc-docker

推奨パッケージのインストール

必須ではありませんが、linux-image-extra パッケージをDocker Engine をインストールする前にインストールしておいてください。
Docker ストレージドライバとしてaufs を使えるようになります。

linux-image-extraのインストール
$ sudo apt-get install linux-image-extra$(uname -r)

Docker Engine のインストール

以上でDocker Engine をインストールする準備が整いましたので、Docker Engine をapt-get コマンドでインストールしましょう。

installdockerengine
$ sudo apt-get install docker-engine

動作確認

インストールが完了したら、hello-world を実行してみましょう。

hello-worldイメージの実行
$ sudo docker run hello-world

メッセージが表示されればインストールは成功です。

これより以下の手順は必要に応じて実施してください。

ユーザのdocker グループへの追加

デフォルトで、Docker Engine は/var/run/docker.sock にUnix ドメインソケットを作成し、そこからdocker コマンドを使ってDocker デーモンとのやり取りを行うことになります。
そこで、root 以外のユーザがsudo を使わなくてもdocker コマンドを使えるように、必要に応じてユーザをdocker ユーザに追加する作業を行ってください。
既存のユーザにグループを追加する場合は、usermod -aG コマンドで追加します。

ユーザをdockerグループへ追加する
$ sudo usermod -aG docker someuser

メモリとSwap の調整について

docker デーモンを起動すると下記のようなWARNING がログに出力されることがあります。

docker起動時のWARNING
... WARNING: Your kernel does not support cgroup swap limit.
... WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.

このWARNING メッセージを出力されないようにするには、memory/swap のaccounting 機能を有効にすることで可能です。
しかし、以下の副作用がある点に注意してください。

  • トータルで利用可能なメモリの約1% がオーバヘッドとして費やされる
  • パフォーマンスが約10% 劣化する
  • これらの副作用は有効にしている間、たとえDocker Engine を停止させたとしてもついてくる

そのため、memory、swap を酷使するような環境で、Docker コンテナがmemory やswap を浪費するような心配性が無い場面(Web アプリの開発環境としてのコンテナ等)では、パフォーマンスを考慮して無効のままとしておくのが良いでしょう。

以下、memory accounting 機能を有効化する手順です。
/etc/default/grub ファイルに以下の1 行を追加します。

/etc/default/grub
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"

ファイルを編集したらupdate-grub コマンドを実行してGRUB を更新し、OS を再起動させます。

update-grub
$ sudo update-grub
$ sudo shutdown -r now

UFW の設定

もし、あなたが使っているubuntu でUFW がon となっていて、HOST の外部からDocker デーモンに接続されることを意図している場合(docker 起動時に"-H tcp://0.0.0.0:2375" といったようなオプションが指定されている場合)、デフォルとでUFW はパケット転送禁止しているので効化する必要があります。
まず、以下のコマンドでUFW がon になっているかどうかを確認することができます。

update-grub
$ sudo ufw status
Status: active

/etc/default/ufw ファイルを開き、下記のように編集します。

/etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"

ファイルを編集したら、reload します。

reloadufw
$ sudo ufw reload

Docker Engine では一般的に外部からの接続においては、2375 port を非TLS/SSL の接続ポートとして使用し、2376 port をSSL/TLS のDocker Engine デーモンのポートとして使用するのが一般的です。
UFW で、これらのport に対するアクセスを許可するには以下のようにコマンドを実行します。

ufwで2375portを有効化する
$ sudo ufw allow 2375/tcp

参考

Ubuntu(Docker document)
https://docs.docker.com/engine/installation/ubuntulinux/
5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?