Photon Linux の Docker は、RPM で導入されます。
そして、Photon Linux は、RPM を yum のかわりに tdnf で管理できます。
Photon Linux の RPM パッケージ管理。(yum / tdnf)
そこで、tdnf コマンドで docker をアップデートしてみました。
VMware Photon Linux 1.0 TP1 は、デフォルトだと Docker 1.5 です。
root [ ~ ]# cat /etc/photon-release
VMware Photon Linux 1.0 TP1
root [ ~ ]# docker -v
Docker version 1.5.0, build a8a31ef
root [ ~ ]# docker version
Client version: 1.5.0
Client API version: 1.17
Go version (client): go1.4.1
Git commit (client): a8a31ef
OS/Arch (client): linux/amd64
Server version: 1.5.0
Server API version: 1.17
Go version (server): go1.4.1
Git commit (server): a8a31ef
tdnf コマンドで RPM をダウンロードするリポジトリの設定は、
下記のようにしています。
※設定方法は Yum と同じです。(Yum リポジトリを参照します。)
root [ ~ ]# cat /etc/yum.repos.d/*.repo | grep -E "^\[|baseurl|enable"
[lightwave]
baseurl=https://dl.bintray.com/vmware/lightwave
enabled=0
[photon-extras]
baseurl=https://dl.bintray.com/vmware/photon_extras
enabled=1
[photon-iso]
baseurl=file:///media/cdrom/usr/src/photon/RPMS
enabled=1
[photon-updates]
baseurl=https://dl.bintray.com/vmware/photon_updates_1.0_TP1_x86_64
enabled=1
[photon]
baseurl=https://dl.bintray.com/vmware/photon_release_1.0_TP1_x86_64
enabled=1
Docker のアップデートがあるか見てみます。
現状でインストールされているのは、docker 1.5.0-3 (@System)で、
リポジトリにある現時点での最新版は、photon-extras にある docker 1.7.0-1 でした。
root [ ~ ]# tdnf list docker
docker.x86_64 1.5.0-3 @System
docker.x86_64 1.5.0-3 photon-iso
docker.x86_64 1.6.0-2 photon-updates
docker.x86_64 1.7.0-1 photon-extras
docker.x86_64 1.5.0-3 photon
Docker をアップデートします。
root [ ~ ]# tdnf update docker
Upgrading:
docker x86_64 1.7.0-1
Is this ok [y/N]:y
Downloading 4450014.00 of 4450014.00
Testing transaction
Running transaction
Docker のバージョンを確認してみます。
RPM のアップデート直後で、まだ Docker サービスを再起動していないため
Client と Server でバージョンが違うとエラーが表示されます。
※Docker のバージョン 1.5 / 1.7 とは違う部分でのバージョン番号についてのエラー表示のようです。
root [ ~ ]# docker -v
Docker version 1.7.0, build 0baf609
root [ ~ ]# docker version
Client version: 1.7.0
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 0baf609
OS/Arch (client): linux/amd64
Error response from daemon: client and server don't have same version (client : 1.19, server: 1.17)
Systemd で管理されている Docker サービスを再起動します。
Systemd の Unit ファイルも更新されているようで、
systemctl daemon-reload を実行しておきます。
root [ ~ ]# systemctl restart docker
Warning: Unit file of docker.service changed on disk, 'systemctl daemon-reload' recommended.
Docker サービスの再起動
root [ ~ ]# systemctl daemon-reload
root [ ~ ]# systemctl restart docker
バージョン確認でも、エラー表示がなくなりました。
root [ ~ ]# docker version
Client version: 1.7.0
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 0baf609
OS/Arch (client): linux/amd64
Server version: 1.7.0
Server API version: 1.19
Go version (server): go1.4.2
Git commit (server): 0baf609
OS/Arch (server): linux/amd64
以上、Photon の Docker をアップデートする話でした。