CentOS 7にDocker最新版をインストールする方法とRPM競合エラーの解決手順
今回はシンプルながら実用的なチュートリアルをご紹介します。先日、Docker 1.12に新しく搭載されたSwarmモードによるネイティブなオーケストレーション機能について紹介しました。これは従来のDockerビルドには存在しなかったまったく新しい機能です。
ところが、CentOS 7の標準リポジトリには依然として古いバージョンのDockerしか収録されておらず、最新版を試そうとしても途方に暮れてしまう方が多いのではないでしょうか。
この状況はいずれ解消されるはずですが、だからといってこの記事を読み飛ばすのはもったいないことです。CentOSのリポジトリは公式リリースチャネルより常に後れを取る傾向があるため、妥協せずに最新かつ最高の機能をOSに取り入れたいのであれば、本記事の手順がきっと役立つはずです。
Dockerリポジトリの設定
最初の作業は、CentOSにDockerの公式リポジトリを登録することです。必要なリポジトリ情報はDockerプロジェクトの公式サイトで公開されています。以下の内容をdocker.repoというファイル名で保存し、/etc/yum.repos.d/ディレクトリに配置してください。
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
次に、新しいDockerパッケージ、中でも最重要となる新しいエンジンをインストールします。
yum install docker-engine
しかし、ここでRPMの競合エラー(複数発生する場合もあります)に遭遇するはずです。
Error: docker-engine-selinux conflicts with docker-selinux-1.10.3-46.el7.centos.10.x86_64
Error: docker-engine conflicts with docker-1.10.3-46.el7.centos.10.x86_64
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
Transaction check error:
file /usr/bin/docker from install of docker-engine-1.12.1-1.el7.centos.x86_64 conflicts with file from package docker-common-1.10.3-46.el7.centos.10.x86_64
パッケージ競合エラーの解消方法
対処法はシンプルです。既存のDocker関連パッケージ(docker本体、selinux、commonなど)をすべて削除してから、新しいパッケージをインストールし直します。手動での作業にはなりますが、それほど時間はかかりません。
まず、既存のDockerを削除します。
yum remove docker
続いて、新しいバージョンをインストールします。
yum install docker-engine
それでもエラーが発生する場合は、残っているパッケージを個別に手動で削除してください。たとえば次のように指定します。
yum remove docker-common-1.10.3-46.el7.centos.10.x86_64
インストール結果の確認
インストールが正常に完了したら、バージョンを確認してみましょう。
docker -v
Docker version 1.12.1, build 23cf638
期待どおりのバージョンが表示されれば成功です。あわせて、Dockerサービスの起動と自動起動設定を行っておくと安心です。
systemctl start docker
systemctl enable docker
これでdockerサービス関連のコマンドもエラーなく実行できるようになるはずです。
まとめ
このチュートリアルをこれ以上シンプルにするのは難しいでしょう。いつかバージョン1.12も古くなり、過去のものになる日が来ます。しかし、やや保守的なサーバー向けLinuxディストリビューションを使用しており、リポジトリのデータが公式リリースより少し遅れている――そんな状況でこの記事を読んでいる方にとっては、本ガイドによって問題を回避し、CentOSが提供する他のメリットを損なうことなく最新のDockerをテストできるようになります。
そもそも、新しいリポジトリを有効化する手法自体は目新しいものではありません。これまで何度も取り上げてきましたし、リポジトリ間の競合を解決する経験も、openSUSEのカスタマイズ記事などで積んできました。最終的にDockerが動作すれば万事解決です。シンプルで、エレガント、そして効率的。
コンテナ関連の記事も今後さらにご紹介していく予定ですので、お楽しみに。
-
Windows 10バージョン21H2をインストール・アップデートする5つの方法
Windows 10バージョン21H2の配信について2021年11月にリリースされたWindows 10バージョン21H2(November 2021 Update)は、現在順次各デバイスへ配信されています。従来の大型アップデートと同様、まずは更新体験が良好であることが確認されたデバイスから優先的に展開され、初期テストとフィードバックを経て、Microsoftが配信範囲を段階的に拡大していく仕組みになっています。2021年5月のアップデートなど比較的最新のビルドをお使いの場合は、Windows Update経由でオプション項目として21H2が表示されます。初期配信の対象外だった場合でも、強制的
-
Windows 11 Devプレビュー版のインストール方法 ― ハードウェア要件とつまずきポイントを徹底解説
Windows 11。最後のWindows、そしてその先へ――マーケティングのキャッチコピーはさておき、ここでは技術的な部分に焦点を当てていきます。Microsoftは次期メジャーリリースとなるOS「Windows 11」を発表しました。刷新されたユーザーインターフェース、新しいハードウェア要件、そしてその他いくつかの重要な変更点が含まれています。それらについて語る前に、まずはWindows 11をセットアップする必要があります。ところが、これが思っていた以上に大変でした。筆者はWindows 10の初期の頃からWindows Insider Programのメンバーであり、これまでさまざまな