Docker Community EditionをUbuntu 16.04 LTS向けに用意されているaptパッケージ版でインストールした。
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"
HTTPS経由でaptパッケージ導入できるよう、関連パッケージを準備しておく。
インストール済みであると言われた時は、気にせず次に進んで構わない。
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
Docker公式のGPG keyを追加して確認。
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
OK
$ 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
アーキテクチャ別に用意されている中から x86_64
向けリポジトリを選択して追加し、 docker-ce
パッケージをインストールする。
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
$ sudo apt-get update
$ sudo apt-get install -y docker-ce
$ sudo docker version
Client:
Version: 17.06.2-ce
API version: 1.30
Go version: go1.8.3
Git commit: cec0b72
Built: Tue Sep 5 20:00:17 2017
OS/Arch: linux/amd64
Server:
Version: 17.06.2-ce
API version: 1.30 (minimum version 1.12)
Go version: go1.8.3
Git commit: cec0b72
Built: Tue Sep 5 19:59:11 2017
OS/Arch: linux/amd64
Experimental: false
Dockerサービスの自動起動が設定されたかは、 systemctl
コマンドで確認できる。
# docker.serviceがenabledとなっていれば有効になっている
$ systemctl list-unit-files
これでDockerエンジンとdockerクライアントコマンドが使えるようになったが、sudo権限付きで実行しないとパーミッション違反となり、実行を拒否されてしまう。
$ docker run hello-world
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.30/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
開発環境用途においては不便なため、dockerグループを追加して、開発者アカウント(ここでは自分自身)をグループに所属させる。
# dockerグループが居なければ追加
$ sudo groupadd docker
# 自分自身をdockerグループに所属
$ sudo usermod -aG docker $USER
# 一度ログアウト
$ logout
# 再度ログインし、dockerグループに所属していることを確認
$ groups
sudo docker
自身のアカウントがdockerグループに所属していると、sudo不要でdockerコマンドが利用できる。
Docker Hubからhello-worldのイメージを取得して実行させる時にも、sudo権限は無くても拒否されなくなっている。
$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
5b0f327be733: Pull complete
Digest: sha256:1f19634d26995c320618d94e6f29c09c6589d5df3c063287a00e6de8458f8242
Status: Downloaded newer image for hello-world:latest