[コンテナ再入門]Ubuntu 18.04 に Docker CE をインストールする
今さらもいいところだが、コンテナを活用した開発フローやアーキテクチャについて基礎から再入門している。 Dockerについては、過去にもちょこちょこ触ってみたり社内のサーバで使ってみたりはしていたものの、ちゃんと実運用できるレベルで理解できていなかったので、勧められた以下の書籍で改めて勉強しなおしている。
- 作者: 山田明憲
- 出版社/メーカー: 技術評論社
- 発売日: 2018/08/25
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
せっかくなので勉強のログをメモしておこうと思う。
Ubuntu 18.04 に Docker CE をインストールする
基本的に公式ドキュメントの「Install using the repository」の手順をなぞるだけ。 docs.docker.com
前準備
- 古いバージョンのDockerをアンインストールする
$ sudo apt-get remove docker docker-engine docker.io containerd runc
レポジトリを設定する
- まずは apt パッケージのインデックスを更新する
$ sudo apt update
- 依存するパッケージをインストールする
$ sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
- GPG key の登録
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- stable(安定版) のレポジトリをセットアップする。( nightly や test といった引数を最後のstable の後に追加すればそれらのチャンネルもセットアップされる模様)
$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
Docker CEをインストールする
- レポジトリを追加したので、もう一度 apt パッケージのインデックスを更新する
$ sudo apt update
- 最新版の Docker CEをインストールする
$ sudo apt install docker-ce docker-ce-cli containerd.io
Dockerを一般ユーザで実行できるようにする
Docker のコマンドを一般ユーザで実行すると権限が足らずエラーが発生する。
$ docker info Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.39/info: dial unix /var/run/docker.sock: connect: permission denied
これを回避するには、毎回sudoをつけてroot権限で実行するほか、Dockerを実行したい一般ユーザを docker グループに所属させれば良い (と、公式ドキュメントに普通に書いてあった)。
If you would like to use Docker as a non-root user, you should now consider adding your user to the “docker” group with something like:
sudo usermod -aG docker your-user
結果確認
バージョン 18.09.3 がインストールされた。
$ docker version Client: Version: 18.09.3 API version: 1.39 Go version: go1.10.8 Git commit: 774a1f4 Built: Thu Feb 28 06:53:11 2019 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 18.09.3 API version: 1.39 (minimum version 1.12) Go version: go1.10.8 Git commit: 774a1f4 Built: Thu Feb 28 05:59:55 2019 OS/Arch: linux/amd64 Experimental: false
Proxyの設定
公式ドキュメントを参考に、dockerd (Daemon) にProxyを設定する場合の例。
上記手順でUbuntuにDockerをインストールした場合、systemd でDaemon化されているため、service設定を更新する。
$ sudo mkdir /lib/systemd/system/docker.service.d $ sudo vi /lib/systemd/system/docker.service.d/http-proxy.conf
[Service] Environment="HTTPS_PROXY=http://your.proxy.url:port/"
Proxy設定ファイルを作ったらdockerd を再起動して読み込ませる。
$ sudo systemctl daemon-reload $ sudo systemctl restart docker.service