こんにちは。エクセルソフトの田淵です。
前回は 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 については
弊社ページ をご覧ください。
以上です。