環境
- Ubuntu 16.04LTS
- デスクトップ版
手順
Get Docker CE for Ubuntu | Docker Documentation
ここを参考に。というかほぼ日本語訳。(英語できないけど)
インストールするDockerのバージョンは記事執筆時点のstable
最新版の17.12.0-ce(Community Edition)です。(DockerにはCE(Community Edition)とEE(Enterprise Edition)というのがあって、無料で使えるのがCEというイメージで大丈夫だと思う。)
Dockerのインストールは
- Dockerのリポジトリを使う方法
-
.deb
を落として、手動でインストールする方法- アップデートに関しても完全に手動で行うことになる
- スクリプトを使ってインストールする方法
の3つがある。ドキュメントではDockerのリポジトリを使う方法が推奨されている。この記事でもこの方法を使用する。
2番目の.deb
を使う方法は、インターネットへの接続がないマシンへのインストールに用いると良い模様。
3番目のスクリプトを使う方法は開発環境やテスト環境にどうぞ、とドキュメントに書いてある。
準備
古いDockerを消す
私のマシンは入ってなかったので関係ないけど。
docker
またはdocker-engine
コマンドが存在する場合は
$ sudo apt remove docker docker-engine docker.io
で削除する。
インストール
apt
の準備を行う
$ sudo apt-get update
aptのアップデートを行ったのちに
$ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
これらのパッケージをインストールすることでHTTPSでapt
を使えるようにしている。(私の環境では新たにインストールされるパッケージはなかった。)
次にDockerのオフィシャルリポジトリGPGキーを登録します。これにより、パッケージが正しいものであることを検証することができるようになります。
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
OK
と表示されれば成功です。
keyのfingerprintは9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
だそうで、以下のコマンドでfingerprintの下8文字を入力することで検証することができます。
$ sudo apt-key fingerprint 0EBFCD88
pub 4096R/0EBFCD88 2017-02-22
フィンガー・プリント = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid Docker Release (CE deb) <docker@docker.com>
sub 4096R/F273FCD8 2017-02-22
日本語のUbuntu環境だとこんな感じ。
次にリポジトリを追加します。CPUのアーキテクチャによって微妙に違うのですが、ここではx86_64またはamd64の場合を示します。そうでない人は(そもそもこの記事読んだりしてないだろうけど)公式に載っているのでそこを参照すると良さげかと。
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
ちなみにこれで追加されるのはstable
(安定)版のDockerが降ってくるリポジトリで、edge
やtest
が使いたい場合は上記コマンドのstable
のところを変更してリポジトリを追加してやればいいようです。
Dockerを入れる
ここまでやったら一度アップデートをしておきましょう。
$ sudo apt-get update
終わったら、
$ sudo apt-get install docker-ce
で、最新版のDocker CEをインストールできます。
(別のバージョンを入れたい場合はこれまた公式ドキュメントに手順が記載されていますが、sudo apt-get install docker-ce=<VERSION>
でいけると思います。たぶん。)
あとは、
$ sudo docker run hello-world
としてやると、Hello world用のイメージを自動的にpullしてきて実行してくれます。
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://cloud.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/
こんなメッセージが出ていれば成功。
【おまけ】non rootなユーザーで使えるようにする
公式のインストール手順は以上で終わりなのですが、普段からsudo
つけて使うのはだるいので、non rootなユーザーでもdockerコマンドを使えるようにする手順を書いておきます。
ちなみにこれも以下のページのてきとう訳です。
Post-installation steps for Linux | Docker Documentation
注意
この説明で作るdocker
グループはroot
なユーザーと同等の権限を持っているのに等しいので、誰でもばかばかdocker
グループに放り込むのはやめましょう。
手順
$ sudo groupadd docker
でdocker
グループを作成します、と書いてはいるんですが私の場合はすでに存在していたので、おそらくdocker本体を入れると自動で作成されるのだろうと思います。
$ sudo usermod -aG docker $USER
これで現在のユーザーがdockerグループに追加されます。他のユーザーを突っ込みたいときは$USER
のところをユーザー名に。
これが終わったら、一度ログアウトして入り直すことでsudo
なしでdocker
を使えるようになっているはずです。