社内に構築しているプライベートリポジトリに対して、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
に上の設定を追加してください。
※ 画像はイメージです。
設定後、自動でDockerが再起動します。
CUIで設定
daemon.jsonを修正します。
daemon.jsonはデフォルトでは次のURLに存在します。
- Linux
- /etc/docker/daemon.json
- Windows
- C:\ProgramData\docker\config\daemon.json
修正後、dockerを再起動してください。
service docker restart
終わりに
今回の方法は「社内の」「自分が管理している」等々の安全が確認できるプライベートリポジトリに限った対応と考えてください。
本来であれば、プライベートリポジトリに証明書が入っていれば発生しないエラーです。ただ、開発用のプライベートリポジトリへのアクセスだという割り切り方をするのであれば、今回の対応でいいと思います。
こういう表現をしていいかはわかりませんが、サーバのメンテナンスもタダではありませんしね。
社内のサーバであれば、こういうことも起こります。
この記事がお役に立ちましたら、各種SNSでのシェアや、今後も情報発信しますのでフォローよろしくお願いします。