(Photo by: Vasile Cotovanu)
この記事はUbuntu16.04にDockerをインストールする手順を2017年6月時点のオフィシャルマニュアルに基づいて説明します。
DockerにはCommunity Edition (CE) とEnterprise Edition(EE)と2つのバージョンがあります。Docker CEはstable(安定板)とedge(最新版)が提供されています。Stableは四半期別に更新され、edgeは毎月更新されています。
この記事中はDocker CEのstableを対象としています。Docker CEとDocker EEはインストール手順が異なります。
Docker CEのインストール
最初に古いDockerがインストールされていれば削除します。
$ sudo apt-get remove docker docker-engine
次にaptをhttps越しで利用できるようにするライブラリをインストールします。
$ sudo apt install apt-transport-https ca-certificates curl software-properties-common
DockerオフィシャルのGPG鍵を追加します。
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Docker CE安定板のリポジトリを追加します。コマンド中のlsb_release -csはUbuntuディストリビューション名を表示します。Ubuntu16.04はxenialを表示します。
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
aptパッケージのインデックスを更新します。これでaptからdockerをインストールできるようになります。
$ sudo apt-get update
最新版のDocker CEをインストールします。インストールに成功するとDockerのデーモンが自動で起動します。
$ sudo apt-get install docker-ce
バージョンを指定する場合は以下のようにします。もしも既にインストールされていれば指定したバージョンで上書きされます。
$ sudo apt-get install docker-ce=
インストールしたDockerのバージョンを確認します。-vでバージョンとビルド番号が表示されます。
$ sudo docker -v
詳細なインストール状況を見るにはdocker infoコマンドを利用します。
$ sudo docker info
Dockerデーモンが起動しているか状態を確認します。
$ sudo systemctl status docker
Dockerのインストールは以上です。
Dockerの動作確認
インストールしたdockerが正しく動作するか確認するため、お約束のHello Worldを実行します。有効になっているHello Worldイメージを探します。
$ sudo docker search hello-world
ここで表示された一覧はDocker Hubで公開されているイメージです。一覧の先頭にあるhello-worldを実行してHello from Docker ! と表示された下に案内が表示されれば動作確認に成功です。
$ sudo docker run hello-world
もう少し試して見るためubuntuのシェルを起動します。
$ sudo docker run -it ubuntu
イメージのダウンロードが完了するとシェルが起動したと思います。システムの情報を表示して見ましょう。
root@382967a9ff89:/# uname -a
exitでDocker上のUbuntuのシェルから抜けます。
root@382967a9ff89:/# exit
Docker上のUbuntuでコマンドを実行するにはイメージ名の後ろに実行するコマンドを続けます。
$ sudo docker run -it ubuntu ls -la
Dockerのアンインストール手順
インストールしたDockerサービスとイメージファイル等の中間ファイル一式を削除する手順を説明します。
apt purgeを利用してDockerをアンインストールします。
$ sudo apt-get purge docker-ce
Dockerが利用するイメージファイル等が格納されているフォルダを削除します。デフォルトでは/var/lib/dockerです。このフォルダはアンインストールでは削除されません。
$ sudo rm -rf /var/lib/docker
インストール後の対応
Dockerをrootユーザー以外でも利用できるようにする
デフォルトではDockerデーモンがrootユーザーの権限で動作しています。dockerコマンドの実行に常にsudoを付ける必要があります。
開発環境だとしても誤操作が心配になる状況のため、新しくグループを作り限定された権限の中で動作するようにします。
新しくdockerグループを作成します。
$ sudo groupadd docker
dockerグループに現在ログインしているユーザーを追加します。
$ sudo usermod -aG docker $USER
グループの変更を反映するにはログオフしてから再度ログインが必要です。ここではログアウトせずに同じユーザーでログインし直します。
$ sudo su - $USER
これでsudoを使わずにdockerを利用できるようになりました。Sudoなしでdocker run hello-worldを試して見て下さい。無事に起動したと思います。
$ docker run hello-world
ブートと同時にDockerサービスを起動する
Ubuntuの起動に合わせてDockerサービスを自動起動するにはsystemctl enableを利用します。
$ sudo systemctl enable docker
自動起動を無効にするにはsystemctl disableを指定します。
$ sudo systemctl disable docker
Dockerサービスの設定ファイルはデフォルトで/etc/docker/daemon.jsonが利用されます。daemon.jsonではネットワークやログの指定が出来ます。詳細な設定項目については以下URLを参照して下さい。
https://docs.docker.com/engine/reference/commandline/dockerd//#daemon-configuration-file
サポートしているプラットフォーム
DockerはUbuntu/Linux以外でもMacOS、Windows10でも動作します。またAWSやAzure等のクラウドプラットフォーム上で動作するためのマニュアルや環境や提供されています。また、AWS ECS代表されるDocker実行環境のフルマネージドサービスを利用するとDockerを運用する手間から解放されます。
まとめ
Dockerのインストールはとても簡単になりました。Dockerが登場して間もない頃のような環境に依存する動作不備やカーネルやネットワークに起因するトラブルに遭遇する事が少なくなりました。
本番稼働するDockerコンテナはAWSやGCPが提供するフルマネージドなコンテナを使う事が多いと思います。
CIサーバーやテスト環境の構築、アプリケーション動作環境の構築は社内でDockerをインストールしてから構築作業を行う事になります。この際にトラブルの心配がありますが、オフィシャルサイト上のドキュメントが充実しているのと、Stack OverflowやGitHub Issue上でもトラブルシューティングも豊富にあるため多くの問題は解決方法が見つかると思います。
Dockerは当たり前のように使われている技術になりつつありますので、過去に敬遠していた方も今使ってみると、すんなりと利用できるかも知れません。
参照情報
https://docs.docker.com/engine/installation/linux/ubuntu
https://docs.docker.com/engine/installation/
本ブログは、Git / Subversionのクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。
エンタープライズ向け Git / Subversion 導入や DevOps による開発の効率化を検討している法人様必見!
「tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。
さらに、システム運用の効率化・自動化支援サービスも提供しています。
”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。
No Comments