構成ファイル

他のツールのようにドットファイルを作り込む必要は実のところほとんどない。

config.json

プログラム docker 既定の構成ファイルパスは ~/.docker/config.json だが、現代の感覚ではホームの直下にこのようなドットファイルを置くことを良しとしない。次のようにする:

  1. 環境変数 XDG_CONFIG_HOME をシェルのスタートアップファイル (e.g. .bashrc) で定義する

  2. 環境変数 DOCKER_CONFIG をシェルのスタートアップファイルで定義する

  3. コマンド mkdir -p $DOCKER_CONFIG を実行する

  4. ファイル $DOCKER_CONFIG/config.json を用意する

最初の変数については XDG Base Directory 利用ノート に記した。それ以降の適当な行に次を記せ:

DOCKER_CONFIG を定義する
export DOCKER_CONFIG=$XDG_CONFIG_HOME/docker

バージョン管理されている $XDG_CONFIG_HOMEconfig.json を置いておきながらなんだが、Docker に関係する構成ファイルには機密事項である各種認証情報が含まれている可能性が高い。このようなものはバージョン管理のリポジトリーに登録してはいけない。無視ファイル目録 (e.g. .gitignore) を適宜設定しろ。

ファイル config.json
{
  "auths": {
    "https://index.docker.io/v1/": {
      "auth": "<SHA64>"
    }
  },
  "cliPluginsExtraDirs": [
    "<HOMEDIR>/.local/share/docker/cli-plugins"
  ],
  "plugins": {
    "docker-scout": {
      "organization": "<DOCKERID>"
    }
  }
}

プロパティー auths は意味を正確に述べるのが難しい。機密情報であることを利用者が認識する必要があることだけは忘れてはいけない。

プロパティー cliPluginsExtraDirs については Docker Scout の文書に記述がある。

プロパティー plugins は CLI プラグイン固有の設定だ。キーと値はプラグイン名とそのプラグインに固有のオプションをそれぞれ表す。

daemon.json

プログラム dockerd の構成ファイルの既定パスは /etc/docker/daemon.json だ。

ファイル /etc/docker/daemon.json
{
  "features": {
    "containerd-snapshotter": true
  },
  "log-driver": "local",
  "log-opts": {
    "max-size": "10m"
  }
}

特に、演習段階のうちにログファイルが肥大化しない設定を済ませたい。Configure logging drivers 内 Tip 記事による。

構成ファイルの構文を検査することが可能だ:

構成ファイルの構文を検査するコマンド
$ dockerd --validate