このドキュメントで説明されているソフトウェアはサポートされていないか、拡張サポートが提供されています。
現在サポートされているリリースにアップグレードすることをお薦めします。
Dockerバージョン1.9以降では、Unbreakable Enterprise Kernelリリース4 (UEK R4)を使用するようにシステムを構成し、このカーネルを使用してシステムを起動する必要があります。
Oracle Linux 6システムにDocker Engineをインストールして構成する手順:
Dockerをインストールする場合は、Unbreakable Enterprise Kernelリリース4(UEK R4)を使用し、このカーネルでシステムをブートするようにシステムを構成します:
システムがULNに登録されている場合は、
ol6_x86_64_UEKR3_latest
またはol6_x86_64_UEK_latest
チャネルへのアクセスを無効にし、ol6_x86_64_UEKR4
チャネルへのアクセスを有効にします。Oracle Linux yumサーバーを使用する場合は、
ol6_UEKR3_latest
リポジトリを無効にし、/etc/yum.repos.d/uek-ol6.repo
のリポジトリ構成ファイルで、次のようにol6_UEKR4
リポジトリを有効にします:[ol6_UEKR4] name=Latest Unbreakable Enterprise Kernel Release 4 for Oracle Linux $releasever ($basearch) baseurl=https://yum.oracle.com/repo/OracleLinux/OL6/UEKR4/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=1 enabled=1 [ol6_UEKR3_latest] name=Latest Unbreakable Enterprise Kernel for Oracle Linux $releasever ($basearch) baseurl=https://yum.oracle.com/repo/OracleLinux/OL6/UEKR3/latest/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=1 enabled=0 [ol6_UEK_latest] name=Latest Unbreakable Enterprise Kernel for Oracle Linux $releasever ($basearch) baseurl=https://yum.oracle.com/repo/OracleLinux/OL6/UEK/latest/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=1 enabled=0
次のコマンドを実行して、システムをUEK R4にアップグレードします。
#
yum update
UEK R4を確実にデフォルトの起動カーネルにするには、
/boot/grub/grub.conf
を編集してdefault
ディレクティブの値を変更し、UEK R4カーネルのエントリの索引を作成します。 たとえば、UEK R4カーネルが最初のエントリの場合、default
の値を0に設定します。これがデフォルトのブート・カーネルでない場合は、システムを再起動して、UEK R4カーネルを選択します。
#
reboot
システムがULNで登録されている場合は、
ol6_x86_64_addons
チャネルを有効にします。Oracle Linux yumサーバーを使用する場合は、次のように、
/etc/yum.repos.d/oracle-linux-ol6.repo
のリポジトリ構成ファイルでol6_addons
リポジトリを有効にします:[ol6_addons] name=Oracle Linux $releasever Add ons ($basearch) baseurl=https://yum.oracle.com/repo/OracleLinux/OL6/addons/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=1 enabled=1
docker-engine
パッケージをインストールします。#
yum install docker-engine
デフォルトで、Docker Engineはデバイス・マッパーをストレージ・ドライバとして使用してDockerコンテナを管理します。 LXCの場合と同様に、btrfsのスナップショット機能を代用すると便利です。
注意技術的な安定性と成熟度により、btrfsを使用することを推奨します。 btrfs用の新しいデバイスが利用できない場合は、パフォーマンス上の理由から、
devicemapper
の代わりにoverlay2
を記憶域ドライバとして使用する必要があります。overlay2
を構成するには、/etc/sysconfig/docker
のother_args
に--storage-driver=overlay2
オプションを追加します。 overlayfsファイル・システムはUEK R4で使用可能です。詳細は、https://docs.docker.com/engine/userguide/storagedriver/overlayfs-driver/を参照してください。
Docker Engineでデバイス・マッパーのかわりにbtrfsを使用するように構成する手順:
yumを使用して
btrfs-progs
パッケージをインストールします。#
yum install btrfs-progs
この例では、
/dev/sdb
などの適切なデバイス上でbtrfsファイル・システムを作成します。#
mkfs.btrfs /dev/sdb
注意複数のコンテナの格納に十分なサイズの未使用のブロック・デバイスが適しています。 推奨の最小サイズは1GBですが、複合Dockerアプリケーションを実装するには、さらに領域が必要になります。 システムが仮想マシンの場合は、新しい仮想ディスクを作成、パーティショニング、およびフォーマットすることを推奨します。 あるいは、既存のext3またはext4ファイル・システムをbtrfsに変換します。 「Oracle Linuxリリース6の管理者ソリューション・ガイド」のhttps://docs.oracle.com/cd/E37670_01/E37355/html/ol_use_case7_btrfs.htmlを参照してください。 LVMボリューム・グループに使用可能な領域がある場合は、新しい論理ボリュームを作成し、それをbtrfsファイル・システムとしてフォーマットできます。
/var/lib/docker
にファイル・システムをマウントします。 新規インストール時には、最初にこのディレクトリの作成が必要になることがあります。#
mkdir /var/lib/docker
#mount /dev/sdb /var/lib/docker
重要実行する予定のすべてのイメージとコンテナについて、常に
/var/lib/docker
に使用可能なディスク・スペースがあることを確認することが重要です。 実行中のコンテナが/var/lib/docker
を満たすと、Dockerエンジンの再起動が失敗し、次のようなエラーが発生します:Error starting daemon: write /var/lib/docker/volumes/metadata.db: no space left on device
Dockerエンジンが実行されていないと、既存または古いイメージをクリーンアップまたは削除することが困難になります。 このような場合は、
/var/lib/docker/tmp
の内容を削除してスペースを確保してください。 しかし、最良の解決策は、Dockerエンジンが実行に必要なディスク領域を使い果たしてしまうシナリオを防ぐクォータを実装することで、このような状況になるのを避けることです。/etc/fstab
ファイルに/var/lib/docker
のエントリを追加します。/dev/sdb /var/lib/docker btrfs defaults 0 0
/etc/sysconfig/docker
を編集して、たとえば次のように、グローバル・ネットワーキング・オプションを構成します。システムがWebプロキシを使用してDocker Hubにアクセスする必要がある場合は、次の行を追加します:
export HTTP_PROXY="
proxy_URL
:port
" export HTTPS_PROXY="proxy_URL
:port
"proxy_URL
とport
をWebプロキシの適切なURLおよびポート番号に置き換えます。バージョン1.5以降のDockerでIPv6サポートを構成するには、たとえば次のように、
--ipv6
オプションをOPTIONS
に追加します。OPTIONS="--ipv6"
IPv6が有効化されると、Dockerはブリッジ
docker0
にリンクローカルIPv6アドレスfe80::1
を割り当てます。DockerがグローバルIPv6アドレスをコンテナに割り当てる場合は、たとえば次のように、追加でIPv6サブネットを
--fixed-cidr-v6
オプションに指定します。OPTIONS="--ipv6 -- fixed-cidr-v6='2001:db8:1::/64'"
Dockerネットワーキングの構成の詳細については、https://docs.docker.com/engine/userguide/networking/を参照してください。
バージョン1.5以降のDockerで、ドッカー・サービスは、マウント・ネームスペースを共有解除して、デバイス・マッパー・ストレージ・ドライバにおける
device busy
の問題を解決します。 ただし、この構成により、ホスト・システム内のautofs
をブレークし、ドッカー・コンテナ内で続いてマウントされるボリュームへのアクセスを防ぎます。 回避策として、Dockerサービスがマウント・ネームスペースを共有解除しないようにします。/etc/init.d/docker
を編集し、デーモンを開始する行から$unshare -m --
パラメータを除去します。 たとえば、次のような行を変更します:"$unshare" -m -- $exec $other_args &>> $logfile &
変更後:
$exec $other_args &>> $logfile &
注意docker
パッケージを更新し、/etc/init.d/docker
への変更が上書きされた場合、この解決法を再度適用する必要があります。docker
サービスを開始して、ブート時に起動するように構成します。#
service docker start
#chkconfig docker on
mlocate
パッケージがインストールされている場合は、次のように、/etc/updatedb.conf
のPRUNEPATHS
エントリを変更して、updatedbが/var/lib/docker
下のディレクトリの索引付けを行わないようにすることをお薦めします。
PRUNEPATHS="/media /tmp /var/lib/docker /var/spool /var/tmp"
このエントリは、locateがDockerコンテナに属するファイルをレポートするのを防ぎます。
docker
サービスが実行されていることを確認するには、次のコマンドを使用します。
# service docker status
docker (pid 1958) is running...
次のようにdockerコマンドを使用して、Docker Engineの構成およびバージョンに関する情報を表示することもできます。
#docker info
Containers: 0 Images: 6 Storage Driver: btrfs Execution Driver: native-0.2 Kernel Version: 3.8.13-35.3.1.el7uek.x86_64 Operating System: Oracle Linux Server 6.6 #docker version
Client version: 1.3.3 Client API version: 1.15 Go version (client): go1.3.3 Git commit (client): 4e9bbfa/1.3.3 OS/Arch (client): linux/amd64 Server version: 1.3.3 Server API version: 1.15 Go version (server): go1.3.3 Git commit (server): 4e9bbfa/1.3.3
詳細は、docker(1)
マニュアル・ページを参照してください。