きり丸の技術日記

技術検証したり、資格等をここに残していきます。

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

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

ゴール

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

docker login private-repository

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

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

環境

  • プライベートリポジトリ
    • JFrog Artifactory
  • Mac
    • Mojave
  • Docker
    • 20.10.0, build 7287ab3

社内で構築しているプライベートリポジトリは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に存在します。

  • Linux
    • /etc/docker/daemon.json
  • Windows
    • C:\ProgramData\docker\config\daemon.json

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

service docker restart

終わりに

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

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

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

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


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

参考情報