2017年10月24日火曜日

ubuntu17.10にdockerをインストールする方法


迷ったので、メモを残し、共有します。

背景

dockerとはcontainerという単位でlinuxの仮想環境を作れる、環境構築プログラムです。
DBやプログラミング言語が設定されたcontainerなどが公開されているため、自分のPCに環境を構築しなくても、該当するcontainerをダウンロードして使えるため、環境構築の手間を減らしてくれる便利プログラムです。

自分はこのdockerをdocker-composeというdockerを使いやすくしてくれるツールを通して利用しています。
docker-composeはこちらの手順でインストールできるのですが、それを動かすためのdocker-ceのインストール方法に悩みました。
なぜかというと、docker-ceはリリースされたばかりのubuntuにはリポジトリを提供していないことがあるからです。

ubuntu17.04をサポートするdockerのリリースは17年の5月だったため、サポートしてくれるとしても半月位はかかると思います。
1ヶ月待てないので、dockerのインストール方法をいくつか調べてみました。

方法1: 対象OSのリポジトリを登録してインストール

下記の手順に従い、docker-ceをインストールします。

Get Docker CE for Ubuntu

2017.10.24時点では17.10(artful)向けのリポジトリが無いため、updateで下記のようなエラーが出て、docker-ceをインストールできませんでした。
$ sudo apt update
ヒット:1 http://jp.archive.ubuntu.com/ubuntu artful InRelease
ヒット:2 http://jp.archive.ubuntu.com/ubuntu artful-updates InRelease                                                                                                            
ヒット:3 http://jp.archive.ubuntu.com/ubuntu artful-backports InRelease                                                                                                           
取得:4 http://security.ubuntu.com/ubuntu artful-security InRelease [65.4 kB]                                                                                                               
無視:5 https://download.docker.com/linux/ubuntu artful InRelease                                                      
エラー:6 https://download.docker.com/linux/ubuntu artful Release 
  404  Not Found [IP: 2600:9000:2181:9400:3:db06:4200:93a1 443]
パッケージリストを読み込んでいます... 完了
E: リポジトリ https://download.docker.com/linux/ubuntu artful Release には Release ファイルがありません。
N: このようなリポジトリから更新を安全に行うことができないので、デフォルトでは更新が無効になっています。
N: リポジトリの作成とユーザ設定の詳細は、apt-secure(8) man ページを参照してください。

このエラーが出た場合は、サポートしてくれるまで待つか、次に説明する方法2か3でインストールできます。

方法2: 対象OSより古いバージョンのリポジトリを登録してインストール

方法1でインストールできない場合の妥協案です。

ubuntuに破壊的な変更が無ければ、現状サポートしている最も新しいOSのリポジトリを利用すれば、docker-ceをインストールできます。

2017.10.24時点でサポートしている最も新しいubuntu OSは「zesty」でした。


そのため、方法1で紹介した手順でadd-apt-repositoryしたリポジトリを削除し、zestyのリポジトリを登録すると、現状の最も新しいdockerをインストールできました。

add-apt-repositoryに-rオプションを付けると、リポジトリを削除できます
64bit PCの場合は、下記のコマンドでリポジトリを削除できます。
sudo add-apt-repository -r "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

64bit PCの場合は、下記のコマンドでzesty版のリポジトリを登録できます。
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   zesty \
   stable"

手順に従ってdocker-ceをインストールし、dockerを実行できました。


参考: How to install Docker on Ubuntu 17.04

方法2でインストールしたdockerのアンインストール方法

下記のコマンドでパッケージ・関連ファイル・リポジトリを削除することで、アインインストールできます。
sudo apt perge
sudo rm -r /var/lib/docker/
sudo add-apt-repository -r "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   zesty \
   stable"

参考: uninstall docker-ce

方法3: バイナリを手動で配置

方法2で十分な場合はそれで良いと思いますが、それでもうまくいかない場合は、下記のドキュメントを参考に手動でのインストールに挑戦することもできます。

Install Docker CE from binaries
Docker Binaries

この方法でインストールすると、パッケージ管理がややこしくなる上に、デーモンを手動で起動する必要があるため、方法2で済む場合はそちらをお勧めします。
(方法2でも方法3でも、配置するバイナリファイルのバージョンは同じです。)

インストールできたら

dockerコマンドは、インストールしただけではsudoコマンドが必須です。
しかし、下記のコマンドでdockerというグループに自分を追加してOSを再起動すると、sudo無しで実行できるようになります。
(バイナリを手動で配置した場合はdockerグループが無いので、作ってください)
sudo usermod -aG docker $USER


参考: Post-installation steps for Linux

まとめ

dockerのサポートが追いついていないubuntuでdockerを使うことができました。
サポートが始まったら、パッケージとリポジトリをそちらに切り替えるのが良いと思います。

共有したい情報は以上です。

0 件のコメント :