公式のDockerRegistryにオレオレ証明書入れてバックエンドをS3にしたらpushとかがうまくいかなかったメモ

大して量無いので経緯と結論だけ。


insecure-registryの設定なしにプライベートDockerRegistry使おうと思うと証明書発行して突っ込む必要ありますが、まさかプライベートレジストリで使うだけでちゃんとした証明書買うのもだるいので大体オレオレ証明書突っ込むと思います。

が、証明書作って

/etc/docker/cert.d/{registry host}/

に入れるとDockerデーモンがローカルに元々入っているルート証明書を使わなくなるので、DockerRegistryとの通信はできますが、逆に言うとDockerRegistryとしか通信できなくなり、バックエンドにS3使ってる場合「x509: certificate signed by unknown authority」とか言われてつらい。


解決方法はDockerプライベートリポジトリ(Docker Registry)構築レシピ | Developers.IOにある通り、ルート証明書へのシンボリックリンクを突っ込めばまぁ行ける。行けるけども…。


それならもう正直insecure-registryに指定したほうが楽じゃんみたいな世界となった。