きり丸の技術日記

技術・エンジニアのイベント・資格等はこちらにまとめる予定です

【Docker】クライアントからプライベートリポジトリへのアクセス時に発生するX509エラーを回避する

社内に構築しているプライベートリポジトリに対して、Dockerでログインしようとしたが掲題のエラーが発生したので、回避した時のメモ。

ゴール

次のコマンドでログインが成功するようにする。

docker login private-repository

次のエラーが出たら失敗。

Error response from daemon: Get https://private-repository/v2/: x509: certificate signed by unknown authority

環境

社内で構築しているプライベートリポジトリはJFrogを使用しています。参考程度に。 jfrog.com

方法

Dockerデーモンにinsecure-registriesを設定し、プライベートリポジトリが安全であることを認識させます。

※ private-repositoryは適宜、読み替えてください。

  "insecure-registries": ["private-repository"]

GUIで設定


Settings または Preferences -> DockerEngine

に上の設定を追加してください。

※ 画像はイメージです。 f:id:nainaistar:20210107163200p:plain

設定後、自動でDockerが再起動します。

CUIで設定


daemon.jsonを修正します。

daemon.jsonはデフォルトでは次のURLに存在します。

修正後、dockerを再起動してください。

終わりに

今回の方法は「社内の」「自分が管理している」等々の安全が確認できるプライベートリポジトリに限った対応と考えてください。

本来であれば、プライベートリポジトリに証明書が入っていれば発生しないエラーです。ただ、開発用のプライベートリポジトリへのアクセスだという割り切り方をするのであれば、今回の対応でいいと思います。

こういう表現をしていいかはわかりませんが、サーバのメンテナンスもタダではありませんしね。

社内のサーバであれば、こういうことも起こります。


この記事がお役に立ちましたら、各種SNSでのシェアや、今後も情報発信しますのでフォローよろしくお願いします。

参考

敬称略。

Docker-docs-ja:安全ではないレジストリ docs.docker.jp

Docker-docs-ja:Docker デーモンの設定 docs.docker.jp

f:id:nainaistar:20201228233250p:plain