Oracle Linux

Docker は Oracle Linux 6 と 7 をサポートします。Docker Linux に Docker をインストールするにあたり、Oracle Linux サポートのサブスクリプションは不要です。

このページでは Docker が管理しているパッケージとインストール手法を使ってインストールします。これらパッケ―ジを使い、Docker の最新リリースを入手します。もし Oracle Linux が管理するパッケージを使いたい場合は、Oracle Linux の Docker サポートに関する情報の ドキュメント をお調べください。

動作条件

現在は Docker の制限により、Docker は x86_64 アーキテクチャ上でのみ動作します。Docker は Oracle Linux の Unbreakable Enterprise Kernel Release 3 (3.8.13) 以上をサポートします。このカーネルは Oracle Linux 6 と 7 で、Docker の btrfs ストレージエンジンをサポートしています。

インストール

  1. マシンに sudo あるいは root 特権のあるユーザでログインします。
  1. 既存の yum パッケージを更新します。
$ sudo yum update
  1. yum レポジトリを手動で追加します。

バージョン6の場合:

$ sudo tee /etc/yum.repos.d/docker.repo <<-EOF
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/oraclelinux/6
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF

バージョン7の場合:

$ sudo tee /etc/yum.repos.d/docker.repo <<-EOF
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/oraclelinux/7
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
  1. Docker パッケージをインストールします。
$ sudo yum install docker-engine
  1. Docker デーモンを開始します。

Oracle Linux6の場合:

$ sudo service docker start

Oracle Linux7の場合:

$ sudo systemctl start docker.service
  1. docker が正常にインストールされたか確認するため、コンテナでテスト用イメージを実行します。
$ sudo docker run hello-world

オプション設定

このセクションは、Oracle Linux と Docker がうまく機能するようなオプション手順を紹介します。

  • docker グループの作成
  • ブート時の Doker 開始設定
  • btrfs ストレージ・エンジンを使う

docker グループの作成

docker デーモンは TCP ポートの替わりに Unix ソケットをバインドします。デフォルトでは、Unix ソケットは root ユーザによって所有されており、他のユーザは sudo でアクセスできます。このため、 docker デーモンは常に root ユーザとして実行されています。

docker コマンド利用時に sudo を使わないようにするには、 docker という名称のグループを作成し、そこにユーザを追加します。 docker デーモンが起動すると、docker グループの所有者により Unix ソケットの読み書きが可能になります。

警告

docker グループは root ユーザ相当です。システム上のセキュリティに対する影響の詳細は、 Docker デーモンが直面する攻撃 をご覧ください。

docker グループを作成し、ユーザを追加するには、

  1. Oracle Linux に sudo 特権のあるユーザでログインします。
  1. docker グループを作成し、ユーザを追加します。
$ sudo usermod -aG docker username
  1. ログアウトしてから、再度ログインします。

対象ユーザが正しい権限を持つようにするためです。

  1. sudo を使わずに docker が実行できることを確認します。
$ docker run hello-world

失敗すると、次のようなメッセージが表示されます。

Cannot connect to the Docker daemon. Is 'docker daemon' running on this host?

DOCKER_HOST 環境変数をシェル上で確認します。もし設定されていれば、unset します。

ブート時の Docker 開始設定

Docker をブート時に起動するようにするには、次のように実行します。

Oracle Linux 6 の場合:

$ sudo chkconfig docker on

Oracle Linux 7 の場合:

$ sudo systemctl enable docker.service

HTTP プロキシの追加が必要な場合、Docker のランタイム・ファイルを異なったディレクトリやパーティションに置いてください。あるいは別のカスタマイズ方法として、Systemd の記事 Systemd Docker デーモン・オプションのカスタマイズ から、どのように設定するかをご覧ください。

btrfs ストレージ・エンジンを使う

Docker は Oracle Linux 6 と 7 で btrfs ストレージ・エンジンの使用をサポートしています。btrfs サポートを有効化する前に、 /var/lib/docker が btrfs に対応したファイルシステムに保管されていることを確認します。 Oracle Linux Administrator’s Solution GuideChapter 5 にある btrfs ファイルシステムの作成とマウント方法をご確認ください。

Oracle Linux 上で btrfs サポートを有効化します。

  1. /var/lib/docker が btrfs ファルシステム上にあることを確認します。
  1. /etc/sysconfig/docker を編集し、 -s btrfsOTHER_ARGS フィールドに追加します。
  1. Docker デーモンを再起動します。

アンインストール

Docker パッケージをアンインストールします。

$ sudo yum -y remove docker

上記のコマンドは、イメージ、コンテナ、ボリュームやホスト上の設定ファイルを削除しません。イメージ、コンテナ、ボリュームを削除するには次のコマンドを実行します。

$ rm -rf /var/lib/docker

ユーザが作成した設定ファイルは、探して削除する必要があります。

既知の問題

Docker 停止時の btrfs ファイルシステムのアンマウント

Docker を btrfs ストレージ・エンジンを使って実行している場合、Docker サービスを停止すると、停止プロセスの中で btrfs ファイルシステムをアンマウントします。Docker サービスを再起動する場合は、ファイルシステムがマウントされているか確認してください。

Oracle Linux 7 では、 systemd.mount 定義を使えます。Docker の systemd.service を編集し、 btrfs マウントに関する systemd の定義を書き換えます。

Oracle Linux 7 の SELinux サポート

Oracle Linux 7 で btrfs ストレージ・エンジンを使う場合は、 /etc/sysconfig/selinux の SELinux の設定を PermissiveDisabled にする必要があります。

さらに問題が?

既に Oracle Linux の Basic か Premier サポートのサブスクリプションをお持ちであれば、Docker のインストールに関連する問題は My Oracle Support にリクエスト可能です。

Oracle Linux サポート・サブスクリプションをお持ちでなければ、 Oracle Linux Forum コミュニティのサポートをご利用ください。