Docker Trusted Registry(DTR)をインストールする

こんにちは。エクセルソフトの田淵です。

前回は Universal Control Plane(UCP)をインストールしました。今回は以下の公式ドキュメントに沿って、Docker Trusted Registry(DTR)をインストールしてみたいと思います。

Install Docker Trusted Registry | Docker Documentation

本記事は 2017年6月時点のものです。インストール後の設定などが変更になっている可能性があります。

システム要件

以下のポートを開ける必要があります。

方向 ポート 目的
in 80/tcp Web と API クライアントの DTR へのアクセス
in 443/tcp Web と API クライアントの DTR へのアクセス

インストール

以下のコマンドを実行します。

# DTRの最新版を取得
$ docker pull docker/dtr:2.2.8

# DTRをインストール
$ docker run -it --rm \
  docker/dtr:2.2.8 install \
  --ucp-node  \
  --ucp-insecure-tls

やってみたのですが、初めてインストールする人には理解の難しい設定項目をインストールスクリプト実行中に聞いてきました。

具体的には次のような確認事項です。

dtr-external-url (URL of the host or load balancer clients use to reach DTR. Format https://host[:port]):
ucp-url (The UCP URL including domain and port):
ucp-username (The UCP administrator username):
ucp-password:
  • DTR external url: DTR をインストールするホスト名かロードバランサー名を記入します。
  • UCP url: UCP の URL を記入します。
  • UCP ユーザー名パスワード: UCP のアドミンユーザー名とパスワードを記入します。

そこで、これではなく、インストール/稼働済みの UCP からも DTR のインストールが出来るようなので試してみました。

ダッシュボードの左上のユーザー名から「Admin Settings」を選択します。

「Docker Trusted Registry」をクリックします。

DTR EXTERNAL URL に DTR のアドレスと使用したいポート。
UCP NODE からマシンを選択。
テスト環境なので Disable TLS Verification For UCP にもチェックを入れます。

インストール用のコマンドを作成してくれますので、後はこれをシェルに入力しましょう。

docker run -it --rm docker/dtr install \
  --dtr-external-url : \
  --ucp-node  \
  --ucp-username  \
  --ucp-url https:// \
  --ucp-insecure-tls

間違いがありませんね。

FATA[0004] There is a port conflict on node X220-Ubuntu. Some other service or container is using one of the DTR ports. Unable to install on this node.

あれ?コンフリクトしている…?

良く考えてみたら、UCP が 443 で動いていて、DTR も 443 で動くんですね。本来は別ノードにインストールすることを推奨しているので仕方ないですね。そのため、UCP のポートを変えることにします。

同じ「Admin Settings」内の「Cluster Congiguration」の「Controller port」を 4443 に変更して再度アクセスします。

ufw, firewalld を設定している場合は、443 も開けるように設定しておきます。

もう一度 DTR インストールの設定画面を表示して、項目を入力します。

docker run -it --rm docker/dtr install \
  --dtr-external-url https:// \
  --ucp-node  \
  --ucp-username  \
  --ucp-url https://:4443 \
  --ucp-insecure-tls

Ucp-url は先ほど 4443 ポートにしたので、https://:4443 が表示されていると思います。

実行してみると、次のエラーが表示されました。

FATA[0008] Failed to make sure volumes exist before running phase2: Couldn't create volume 'dtr-ca-ccbe2d08a257': Error response from daemon: {"message":"could not find any nodes on which a volume could be created"}

まだあるのかよ…

ググってみたら この Forum が引っ掛かりまして、

「Admin Settings>Scheduler>Allow Administrators To Deploy Containers On UCP Managers Or Nodes Running DTR」にチェックをいれるそうです。

フォーラムでもインストールドキュメントに書くべき。とありましたが、まさにそうですね。。

インストールが無事完了しました♪

次は

UCP でイメージからコンテナを作ったりするか、Swarm の設定をするかしたいと思います。

Docker Enterprise については

弊社ページ をご覧ください。

以上です。

タイトルとURLをコピーしました