迷ったので、メモを残し、共有します。
背景
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 件のコメント :
コメントを投稿