インストールしてみました。
どうやら Oracle Linux での Docker 1.9 は、UEK R4 を前提としているようです。
今回の Docker インストール先の環境。
カーネルはまだ UEK R3(3.8.13)です。
[root@ol72-min02 ~]# cat /etc/oracle-release
Oracle Linux Server release 7.2
[root@ol72-min02 ~]# uname -r
3.8.13-98.7.1.el7uek.x86_64
はじめの、Yum リポジトリの登録状態です。
Oracle Linux 7.x の Docker RPM は、「ol7_addons」にあります。
[root@ol72-min02 ~]# yum repolist
読み込んだプラグイン:ulninfo
リポジトリー ID リポジトリー名 状態
ol7_UEKR3/x86_64 Latest Unbreakable Enterprise Kernel Release 3 for Oracle Linux 7Server (x86_64) 372
ol7_addons/x86_64 Oracle Linux 7Server Add ons (x86_64) 151
ol7_latest/x86_64 Oracle Linux 7Server Latest (x86_64) 13,563
repolist: 14,086
インストールしたい Docker RPM はこれです。
[root@ol72-min02 ~]# yum list docker-engine
読み込んだプラグイン:ulninfo
利用可能なパッケージ
docker-engine.x86_64 1.9.1-1.0.1.el7 ol7_addons
RPM の依存パッケージを見てみると、
Docker 1.9 では、UEK R4 以上(4.1.~)のカーネルを必要としていました。
[root@ol72-min02 ~]# yum deplist docker-engine
読み込んだプラグイン:ulninfo
パッケージ : docker-engine.x86_64 1.9.1-1.0.1.el7
依存性 : /bin/sh
provider: bash.x86_64 4.2.46-19.el7
依存性 : config(docker-engine) = 1.9.1-1.0.1.el7
provider: docker-engine.x86_64 1.9.1-1.0.1.el7
依存性 : docker-engine-selinux >= %{epoch}:1.9.1-1.0.1.el7
provider: docker-engine-selinux.noarch 1.9.1-1.0.1.el7
依存性 : iptables
provider: iptables-services.x86_64 1.4.21-16.el7
provider: iptables.x86_64 1.4.21-16.el7
provider: iptables.i686 1.4.21-16.el7
依存性 : kernel-uek >= 4.1
provider: kernel-uek-debug.x86_64 4.1.12-32.1.2.el7uek
provider: kernel-uek.x86_64 4.1.12-32.1.2.el7uek
依存性 : libc.so.6()(64bit)
provider: glibc.x86_64 2.17-106.0.1.el7_2.1
依存性 : libc.so.6(GLIBC_2.14)(64bit)
provider: glibc.x86_64 2.17-106.0.1.el7_2.1
依存性 : libc.so.6(GLIBC_2.17)(64bit)
provider: glibc.x86_64 2.17-106.0.1.el7_2.1
依存性 : libc.so.6(GLIBC_2.2.5)(64bit)
provider: glibc.x86_64 2.17-106.0.1.el7_2.1
依存性 : libc.so.6(GLIBC_2.4)(64bit)
provider: glibc.x86_64 2.17-106.0.1.el7_2.1
依存性 : libc.so.6(GLIBC_2.9)(64bit)
provider: glibc.x86_64 2.17-106.0.1.el7_2.1
依存性 : libcgroup
provider: libcgroup.x86_64 0.41-8.el7
provider: libcgroup.i686 0.41-8.el7
依存性 : libdevmapper.so.1.02()(64bit)
provider: device-mapper-libs.x86_64 7:1.02.107-5.el7
依存性 : libdevmapper.so.1.02(Base)(64bit)
provider: device-mapper-libs.x86_64 7:1.02.107-5.el7
依存性 : libdevmapper.so.1.02(DM_1_02_97)(64bit)
provider: device-mapper-libs.x86_64 7:1.02.107-5.el7
依存性 : libdl.so.2()(64bit)
provider: glibc.x86_64 2.17-106.0.1.el7_2.1
依存性 : libpthread.so.0()(64bit)
provider: glibc.x86_64 2.17-106.0.1.el7_2.1
依存性 : libpthread.so.0(GLIBC_2.2.5)(64bit)
provider: glibc.x86_64 2.17-106.0.1.el7_2.1
依存性 : libsystemd.so.0()(64bit)
provider: systemd-libs.x86_64 219-19.0.2.el7
依存性 : libsystemd.so.0(LIBSYSTEMD_209)(64bit)
provider: systemd-libs.x86_64 219-19.0.2.el7
依存性 : rtld(GNU_HASH)
provider: glibc.x86_64 2.17-106.0.1.el7_2.1
provider: glibc.i686 2.17-106.0.1.el7_2.1
依存性 : selinux-policy >= 3.13.1-23
provider: selinux-policy.noarch 3.13.1-60.0.1.el7
依存性 : systemd-units
provider: systemd.x86_64 219-19.0.2.el7
依存性 : tar
provider: tar.x86_64 2:1.26-29.el7
依存性 : xz
provider: xz.x86_64 5.1.2-12alpha.el7
このままだと依存関係の都合で、通常の yum install は通りません。
※ちなみに、Red Hat 互換カーネルでも、UEK R4 の依存関係でエラーになります。
※ちなみに、Red Hat 互換カーネルでも、UEK R4 の依存関係でエラーになります。
そこで UEK R4 をインストールすべく、リポジトリを追加登録します。
/etc/yum.repos.d/public-yum-ol7-uekr4.repo ファイルを追加。
[ol7_UEKR4]
name=Latest Unbreakable Enterprise Kernel Release 4 for Oracle Linux $releasever ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL7/UEKR4/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1
リポジトリの一覧はこうなります。
[root@ol72-min02 ~]# yum repolist
読み込んだプラグイン:ulninfo
リポジトリー ID リポジトリー名 状態
ol7_UEKR3/x86_64 Latest Unbreakable Enterprise Kernel Release 3 for Oracle Linux 7Server 372
ol7_UEKR4/x86_64 Latest Unbreakable Enterprise Kernel Release 4 for Oracle Linux 7Server 26
ol7_addons/x86_64 Oracle Linux 7Server Add ons (x86_64) 151
ol7_latest/x86_64 Oracle Linux 7Server Latest (x86_64) 13,563
repolist: 14,112
docker-engine をインストールします。
[root@ol72-min02 ~]# yum install -y docker-engine
読み込んだプラグイン:ulninfo
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ docker-engine.x86_64 0:1.9.1-1.0.1.el7 を インストール
(省略)
インストール:
docker-engine.x86_64 0:1.9.1-1.0.1.el7 kernel-uek.x86_64 0:4.1.12-32.1.2.el7uek
kernel-uek-firmware.noarch 0:4.1.12-32.1.2.el7uek
依存性関連をインストールしました:
audit-libs-python.x86_64 0:2.4.1-5.el7
checkpolicy.x86_64 0:2.1.12-6.el7
docker-engine-selinux.noarch 0:1.9.1-1.0.1.el7
libcgroup.x86_64 0:0.41-8.el7
libsemanage-python.x86_64 0:2.1.10-18.el7
policycoreutils-python.x86_64 0:2.2.5-20.0.1.el7
python-IPy.noarch 0:0.75-6.el7
setools-libs.x86_64 0:3.3.7-46.el7
完了しました!
OS を再起動して、アップデートしたカーネルを読み込みます。
[root@ol72-min02 ~]# reboot
カーネルが URK R4 のバージョンになりました。
[root@ol72-min02 ~]# uname -r
4.1.12-32.1.2.el7uek.x86_64
Docker のサービスを起動します。
[root@ol72-min02 ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@ol72-min02 ~]# systemctl start docker
バージョンは 1.9.1 です。
[root@ol72-min02 ~]# docker info
Containers: 0
Images: 0
Server Version: 1.9.1
Storage Driver: devicemapper
Pool Name: docker-251:0-480059-pool
Pool Blocksize: 65.54 kB
Base Device Size: 107.4 GB
Backing Filesystem: xfs
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 53.74 MB
Data Space Total: 107.4 GB
Data Space Available: 9.298 GB
Metadata Space Used: 606.2 kB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.147 GB
Udev Sync Supported: true
Deferred Removal Enabled: false
Deferred Deletion Enabled: false
Deferred Deleted Device Count: 0
Data loop file: /var/lib/docker/devicemapper/devicemapper/data
Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
Library Version: 1.02.107-RHEL7 (2015-10-14)
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 4.1.12-32.1.2.el7uek.x86_64
Operating System: Oracle Linux Server 7.2
CPUs: 1
Total Memory: 1.701 GiB
Name: ol72-min02
ID: OPXX:YXNN:WEDP:33LU:PF3Y:QJA2:DRNY:5IH2:OAE6:ATPC:UG63:KBEJ
ちなみに、Docker Hub オフィシャルの Oracle Linux イメージも
最新は Oracle Linux 7.2 になってました。
[root@ol72-min02 ~]# docker pull oraclelinux
Using default tag: latest
latest: Pulling from library/oraclelinux
f359075ce4d8: Pull complete
df9c05f5df07: Pull complete
bea04efc3319: Pull complete
Digest: sha256:2e1fc3ffe4f5ca46d55ac0e9d2463299063ecd68d48582ed0531c268155895ec
Status: Downloaded newer image for oraclelinux:latest
[root@ol72-min02 ~]# docker run --rm oraclelinux cat /etc/oracle-release
Oracle Linux Server release 7.2
Oracle Linux のナウい系のものは、
たまに最新の UEK にバージョンアップが必要なものがある気がします。
たまに最新の UEK にバージョンアップが必要なものがある気がします。
以上、Oracle Linux 7.x に Docker 1.9 をインストールしてみた話でした。
0 件のコメント:
コメントを投稿