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 4 (4.1.12) 以上をサポートします。このカーネルは Oracle Linux 6 と 7 で、Docker の btrfs ストレージエンジンをサポートしています。
インストール¶
注釈
以下のバイナリ版インストール手順は Docker が作成しました。これらのバイナリは Oracle Linux サポートが扱わないものです。Oracle Linux サポートが必要であれば、 Oracle Linux が提供するドキュメント のインストール手順に従ってください。
注釈
Oracle Linux 6 および 7 に関するインストール手順は the Administrator’s Solutions Guide の Chapter 2 をご覧ください。
- マシンに
sudo
あるいはroot
特権のあるユーザでログインします。
- 既存の yum パッケージを更新します。
$ sudo yum update
- 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
- Docker パッケージをインストールします。
$ sudo yum install docker-engine
- Docker デーモンを開始します。
Oracle Linux6の場合:
$ sudo service docker start
Oracle Linux7の場合:
$ sudo systemctl start docker.service
docker
が正常にインストールされたか確認するため、コンテナでテスト用イメージを実行します。
$ sudo docker run hello-world
オプション設定¶
このセクションは、Oracle Linux と Docker がうまく機能するようなオプション手順を紹介します。
- docker グループの作成
- ブート時の Docker 開始設定
- btrfs ストレージ・エンジンを使う
docker グループの作成¶
docker
デーモンは TCP ポートの替わりに Unix ソケットをバインドします。デフォルトでは、Unix ソケットは root
ユーザによって所有されており、他のユーザは sudo
でアクセスできます。このため、 docker
デーモンは常に root
ユーザとして実行されています。
docker
コマンド利用時に sudo
を使わないようにするには、 docker
という名称のグループを作成し、そこにユーザを追加します。 docker
デーモンが起動すると、docker
グループの所有者により Unix ソケットの読み書きが可能になります。
警告
docker
グループは root
ユーザ相当です。システム上のセキュリティに対する影響の詳細は、 Docker デーモンが直面する攻撃 をご覧ください。
docker
グループを作成し、ユーザを追加するには、
- Oracle Linux に
sudo
特権のあるユーザでログインします。
docker
グループを作成し、ユーザを追加します。
$ sudo usermod -aG docker username
- ログアウトしてから、再度ログインします。
対象ユーザが正しい権限を持つようにするためです。
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 Guide の Chapter 5 にある btrfs ファイルシステムの作成とマウント方法をご確認ください。
Oracle Linux 上で btrfs サポートを有効化します。
/var/lib/docker
が btrfs ファルシステム上にあることを確認します。
/etc/sysconfig/docker
を編集し、-s btrfs
をOTHER_ARGS
フィールドに追加します。
- 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 の設定を Permissive
か Disabled
にする必要があります。
さらに問題が?¶
既に Oracle Linux の Basic か Premier サポートのサブスクリプションをお持ちであれば、Docker のインストールに関連する問題は My Oracle Support にリクエスト可能です。
Oracle Linux サポート・サブスクリプションをお持ちでなければ、 Oracle Linux Forum コミュニティのサポートをご利用ください。
参考
- Installation on Oracle Linux
- https://docs.docker.com/engine/installation/linux/oracle/