Docker使おう
巷で話題のDocker。コンテナ型仮想技術として人気を博しています。開発環境としても、実行環境としてもいろいろ使える便利なクジラだそうで、使ってみたいですね。
Dockerを使うにはともあれ本体であるDockerEngineをインストールするところから始めます。今回の記事はDockerEngineインストールです。
公式の情報など
今回の記事では
- Debian8 jessie
でインストール行っていますが、他の環境でもそう違いはありません。(Dockerの機能はLinuxカーネルに依存しているためMac、WindowsはLinuxを起動できる仮想マシンの導入から行う必要があります。)
他のOSでは以下の記事を参照してください。
docker公式のインストールガイド(英語)
左側のメニュー→Docker Engine →install→各OSの説明 Mac、WindowはもちろんLinuxは主要ディストリビューションのほとんどのインストール方法解説を網羅しています。
docker日本語マニュアルプロジェクト
左側のメニュー→Docker Engine →インストールこちらは有志の方が英語ドキュメントを日本語訳してくれているプロジェクトです。こちらもMac、Window、Linuxの主要ディストリビューションのインストール方法解説があります。
事前準備
Linuxのカーネルバージョンの確認
Docker Engineをインストールする要件として、OSは64bitでカーネルは3.10以上である必要があります。
以下のコマンドでカーネルのバージョンを調べることができます。
$ uname -r
ちなみに@MINOのDebian8 jessieでは以下のように表示されました。
3.16.0-4-amd64
Macやwindowsでは仮想マシンを介してDockerを使うことになると思いますが、古いバージョンのディストリビューションじゃなければ大丈夫だと思います。
古いリポジトリのpurge
念の為古いリポジトリをパージします。
$ sudo apt-get purge lxc-docker*
$ sudo apt-get purge docker.io*
リポジトリのアップデートと認証ツールのインストール
リポジトリをアップデートして、aptで必要になるhttpsとSSLに関わるツールをインストールします。
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates
GPGキーを更新
GPGキーを更新します。
$ apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
リポジトリの追加
DockerEngineが入っているリポジトリを追加するため、リポジトリの追加を行います。
/etc/apt/sources.list.d/docker.list
をエディタで開きます。
もしこのファイルが無かったら作ってください。
(ファイルが存在するなら)一旦ファイルの内容を全部消して、以下の一行を新たに加えてください。(バージョンによって異なります)
Wheezy 7
deb http://apt.dockerproject.org/repo debian-jessie main
Jessie 8
deb http://apt.dockerproject.org/repo debian-jessie main
Stretch/Sid 9
deb https://apt.dockerproject.org/repo debian-stretch main
保存してエディタを終了します。
パッケージインデックスを有効にするため以下のコマンドを実行します。
$ apt-get update
リポジトリが有効になっているか確認します。
$ apt-cache policy docker-engine
インストールと起動
パッケージ導入
パッケージインデックスを有効にします。
$ sudo apt-get update
DockerEngine本体をインストールします。
$ sudo apt-get install docker-engine
Dockerデーモンを起動します。
$ sudo service docker start
起動テスト
最後にDockerEngineの動作確認のため、テストコンテナを起動してみます。
$ sudo docker run hello-world
起動に成功すると以下のようなテストコンテナが起動し、メッセージが表示されコンテナが終了します。
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b901d36b6f2f: Pull complete
0a6ba66e537a: Pull complete
Digest: sha256:8be990ef2aeb16dbcb9271ddfe2610fa6658d13f6dfb8bc72074cc1ca36966a7
Status: Downloaded newer image for hello-world:latest
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.
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 Hub account:
https://hub.docker.com
For more examples and ideas, visit:
https://docs.docker.com/userguide/
自動起動設定
自動起動の設定もしておきます。(例はsystemdの場合です)
$ sudo systemctl enable docker.service
これでインストールは完了です。
後記
環境がLinuxなら導入は簡単です。windowsやMacでは仮想マシンを介する必要がありますが、其のへんの手間をなくす便利なツールもありますので、それほど苦労しないと思います。
ただDockerを触っていくにあたってLinuxの仕組みに関して少なからず知識が必要になってきますので、できればLinuxを直に触ることをおすすめします。