Docker CEを Ubuntu 16.04 TLS (Xenial Xerus) にaptインストールする手順

投稿者 : OSCA

初心者でも参加できる「WEBエンジニア勉強会 #12」(東京都,渋谷)、03月29日(金) に開催! 詳しくはイベント詳細ページをご覧ください。

 本稿では Docker CE を Ubuntu 16.04 TLS (Xenial Xerus) にインストールする手順について解説します。

事前準備

 最新版の Docker CE を導入する前に、念の為、Ubuntu に古いバージョンの Docker 関連製品がインストールされている場合があるので、次のコマンドで削除しておきましょう。

$ sudo apt-get remove docker docker-engine docker.io containerd runc
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package docker
E: Unable to locate package docker-engine
E: Unable to locate package docker.io
E: Couldn't find any package by glob 'docker.io'
E: Couldn't find any package by regex 'docker.io'
E: Unable to locate package containerd
E: Unable to locate package runc

 筆者の Ubuntu は Docker 関連製品がインストールされていなかったので、上の結果のように「見つからなかった」という旨の表示がされました。 もし古い Docker が見つかりアンインストールされた場合は、/var/lib/docker/ フォルダにデータファイルが保存されている場合があるので、そのフォルダの中身も削除しておきましょう。

Docker リポジトリの追加

 インストールを開始する前に、まずは apt 用の Docker 公式リポジトリを追加する必要がありますので、その手順を解説します。 まずは次のコマンドで apt を最新化します。

$ sudo apt-get update

 次に apt コマンドが HTTPS リポジトリからパッケージを取得できるように、次のようなコマンドでいくつかのパッケージをインストールします。

$ sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  libassuan0 libcurl3-gnutls libnpth0 pinentry-curses python3-software-properties
Suggested packages:
  pinentry-doc
The following NEW packages will be installed:
  gnupg-agent libassuan0 libnpth0 pinentry-curses
The following packages will be upgraded:
  apt-transport-https ca-certificates curl libcurl3-gnutls
python3-software-properties software-properties-common
6 upgraded, 4 newly installed, 0 to remove and 73 not upgraded. Need to get 860 kB of archives.
After this operation, 1,202 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
(中略)
done.

 続いて Docker 公式の GPG key を追加します。

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
OK

 上で追加したキーのフィンガープリントを確認します。 Docker のフィンガープリントは 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 だということが公式サイトでアナウンスされていますので、下8桁をキーに検索することで表示することができます。

$ sudo apt-key fingerprint 0EBFCD88
pub   4096R/0EBFCD88 2017-02-22
      Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid                Docker Release (CE deb) <docker@docker.com>
sub   4096R/F273FCD8 2017-02-22

 最後に Docker のリポジトリを追加します。 ご利用のマシンのアーキテクチャによってコマンドが異なります。

x86_64/amd64 の場合
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

armhf の場合
$ sudo add-apt-repository "deb [arch=armhf] https://download.docker.com/linux/ubuntu Z $(lsb_release -cs) stable"

arm64 の場合
$ sudo add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

 ここまでの作業で Docker の公式リポジトリを追加することができました。

Docker CE のインストール

 それでは Docker CE をインストールしていきます。 その前に、上でリポジトリを新しく追加したので、apt の情報を最新化しておきます。

$ sudo apt-get update

 そして、ようやく Docker CE のインストールです。 次のように docker 関連のパッケージを指定してインストールを行います。

$ sudo apt-get install docker-ce docker-ce-cli containerd.io
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  aufs-tools cgroupfs-mount libltdl7 pigz
Suggested packages:
  mountall
The following NEW packages will be installed:
  aufs-tools cgroupfs-mount containerd.io docker-ce docker-ce-cli libltdl7 pigz
0 upgraded, 7 newly installed, 0 to remove and 73 not upgraded. Need to get 50.4 MB of archives.
After this operation, 243 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
(以下略)

 これで Docker CE のインストールは完了です。 最後に docker -v コマンドで、インストールされた Docker CE のバージョンを表示してみましょう。 次のように表示されればOKです。

$ docker -v
Docker version 18.09.2, build 6247962

Docker を使いこなそう!

 ここまでで Docker のインストールは完了です。 次のステップとして次のような記事で Docker を体験して見てください。

著者 : OSCA

OSCA

Java, PHP 系のWEBエンジニア。 WEBエンジニア向けコミュニティ「WEBエンジニア勉強会」を主催。
個人として何か一つでも世の中の多くの人に使ってもらえるものを作ろうと日々奮闘中。
@engineer_osca