1. ホーム
  2. docker

[解決済み] プライベートなDockerレジストリにリモートでアクセスするには?

2023-06-01 09:45:02

質問

私は、以下の画像を使用して、プライベートDockerレジストリをセットアップしようとしています。 https://github.com/docker/docker-registry

走るだけで

docker run -p 5000:5000 registry

このリポジトリは localhost からしか pull/push できませんが、他のマシン (同じ LAN 上のプライベートアドレスを使用) からアクセスしようとすると、エラーメッセージが表示され失敗します。

*2014/11/03 09:49:04 Error: Invalid registry endpoint https ://10.0.0.26:5000/v1/': 
Get https:// 10.0.0.26:5000/v1/_ping: Forbidden. If this private 
registry supports only HTTP or HTTPS with an unknown CA certificate,
please add `--insecure-registry 10.0.0.26:5000` to the daemon's 
arguments. In the case of HTTPS, if you have access to the registry's
CA certificate, no need for the flag; simply place the CA certificate 
at /etc/docker/certs.d/10.0.0.26:5000/ca.crt*

何が私を狂わせるかというと、それを使って正常にアクセスできることです。 curl 10.0.0.26:5000 または curl 10.0.0.26:5000/v1/search

をどこにどのように渡せばいいのかもわかりません。 --insecure-registry フラグを渡す必要があります。

どのように解決するのですか?

OK - 私はこれに対する解決策を見つけました - 一日中調べた後に。

1.12.1以下のdockerの場合。

新しいクライアントバージョンでは、SSLなしのプライベートレジストリでの動作が拒否されることが判明しています。

これを修正するには、クライアント マシン上のデーモンを insecure フラグで起動する必要があります。

と入力するだけです。

sudo service docker stop # to stop the service

で、次に

sudo docker -d --insecure-registry 10.0.0.26:5000

(を置き換えます。 10.0.0.26 を自分のIPアドレスに置き換えてください)。

dockerの人がpull/pushのコマンドラインにこのオプションを追加してくれることを期待します...。

編集 - 別の方法として、このフラグを DOCKER_OPTS という環境変数に追加することができます。 そして sudo service docker restart

再び編集 - docker の人たちがそれに取り組んでいるようで、すぐに修正版が来るようです。 https://github.com/docker/docker/pull/8935

docker 1.12.1用です。

vikas027の回答(centosで有効)を参考にしてください。