hirosanote’s blog

検証環境の構築手順やネットワーク機器のテスト結果、関連する事について記載します。このブログは個人で行っており、所属する会社とは関係ありません。

Ubuntu 16.04にDockerをインストールする手順

Ubuntu 16.04にDockerをインストールする手順を記載します。以下のサイトを参考および翻訳しました。サイト管理者には、翻訳しブログに掲載することの許可は得ています。
www.itzgeek.com

Dockerは、アプリケーションをコンテナに配置して実行するのに役立つオープンソースのソフトウェアです。 コンテナは仮想マシンに似ていますが、実行するオペレーティング環境に関係なく、リソースを少なくして管理しやすく、常に同じものを実行します。

Dockerはcgroupとnamespaceを使用して、独立したコンテナを単一のLinuxインスタンス内で実行できるようにします。

このガイドはUbuntu 16.04にDockerをインストールするのに役立ちます。 

Dockerは64ビットオペレーティングシステムを必要とし、Ubuntu 16.04 /およびUbuntu 14.04をサポートします。


Dockerのエディション
Dockerは現在2つのエディションで利用可能です。
 - Community Edition (CE)
 - Enterprise Edition (EE)

この手順書では、Community Edition (CE)を使用します。


前提条件
 Dockerの古いバージョン(依存に関係する“docker”又は“docker-engine”)をアンインストールします。 システムにドッカーパッケージがない場合は、以下の手順をスキップしてください。

$ sudo apt-get -y remove docker docker-engine

以下のパッケージをUbuntu 14.04にのみインストールし、aufsストレージドライバを使用するには、システムにlinux-image-extraパッケージがあることを確認してください。

$ sudo apt-get install -y linux-image-extra-$(uname -r) linux-image-extra-virtual


Dockerリポジトリのセットアップ

リポジトリキャッシュをアップデートします。

$ sudo apt-get update

以下のパッケージをインストールして、httpsメソッドで "apt"が動作し、CA証明書がインストールされていることを確認してください。

$ sudo apt-get install -y apt-transport-https software-properties-common ca-certificates curl

Dockerリポジトリ用のGPGキーをシステムに追加します。

$ wget https://download.docker.com/linux/ubuntu/gpg 
$ sudo apt-key add gpg

ターミナルで次のコマンドを実行して公式のDockerリポジトリを追加してください。 

$ echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable" | sudo tee -a /etc/apt/sources.list.d/docker.list

aptデータベースをアップデートします。

$ sudo apt-get update

デフォルトのUbuntu 16.04リポジトリからではなく、公式リポジトリからドッカーをインストールしていることを確認してください。

$ sudo apt-cache policy docker-ce

以下のような出力が表示され、Dockerリポジトリの詳細が表示されます。

docker-ce:
  Installed: (none)
  Candidate: 18.03.0~ce-0~ubuntu
  Version table:
     18.03.0~ce-0~ubuntu 500
        500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
     17.12.1~ce-0~ubuntu 500
        500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
     17.12.0~ce-0~ubuntu 500
        500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
     17.09.1~ce-0~ubuntu 500
        500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
     17.09.0~ce-0~ubuntu 500
        500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
     17.06.2~ce-0~ubuntu 500
        500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
     17.06.1~ce-0~ubuntu 500
        500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
     17.06.0~ce-0~ubuntu 500
        500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
     17.03.2~ce-0~ubuntu-xenial 500
        500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
     17.03.1~ce-0~ubuntu-xenial 500
        500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
     17.03.0~ce-0~ubuntu-xenial 500
        500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages


UbuntuにDockerをインストール

 以下のコマンドを使用して、Dockerをインストールします。

$ sudo apt-get -y install docker-ce

Dockerをマシンにインストールした後、Dockerサービスがインストール後に自動的に起動しない場合に備えて起動設定を行います。

$ sudo systemctl start docker.service
$ sudo systemctl enable docker.service

ドッカーコンテナを実行してドッカーのインストールを確認します。

$ sudo docker run hello-world

以下のような出力が表示されます。Dockerが正しくインストールされていることを確認出来ます。

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
ca4f61b1923c: Pull complete
Digest: sha256:97ce6fa4b6cdc0790cda65fe7290b74cfebd9fa0c9b8c38e979330d547d22ce1
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.
    (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/

 

ルート以外のユーザーによるDocker実行の許可

デフォルトでは、dockerコマンドを実行するにはroot権限が必要です。 これを避けるために、sudoでdockerコマンドを使用しています。 ルート以外のユーザーがDockerコンテナを実行できるようにするには、以下の手順に従ってDockerを実行する権限を与えます。

dockerというグループが存在しない場合は作成します。

$ sudo groupadd docker

ユーザーをドッカーグループに追加し、 "taro"をユーザー名に置き換えます。

$ sudo useradd taro

ユーザーをdockerグループに追加します。 

$ sudo usermod -aG docker taro

ログアウトし、再度ログインします。
これで、sudoのプレフィックスを付けずにDockerコマンドを実行できるようになります。

$ docker run hello-world