web-dev-qa-db-ja.com

安全でないレジストリをDockerに追加する

CentOS上でdocker 1.12を実行しています。安全でないレジストリを追加しようとしていますが、ドキュメントに記載されているものが正しく機能しません。システムはsystemdを使用するので、私は/etc/systemd/system/docker.service.d/50-insecure-registry.confファイルを作成しました。

$ cat /etc/systemd/system/docker.service.d/50-insecure-registry.conf
[Service]
Environment='DOCKER_OPTS=--insecure-registry="hostname.cloudapp.net:5000"'

デーモンをロードしてdockerサービスを再起動すると、systemdは環境変数がそこにあることを示します。

$ Sudo systemctl show docker | grep Env
Environment=DOCKER_OPTS=--insecure-registry="hostname.cloudapp.net:5000"

しかし、docker infoを実行しても、安全でないレジストリが追加されているのがわかりません

$ docker info
........
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Insecure Registries:
    127.0.0.0/8

hostaneme.cloudapp.netに画像をプッシュすると失敗します

Pushing application     (hostname.cloudapp.net:5000/application:latest)...
The Push refers to a repository     [hostname.cloudapp.net:5000/mozart_application]
ERROR: Get https://hostname.cloudapp.net:5000/v1/_ping: http: server gave HTTP response to HTTPS client

できることはありますか?私は何かが足りないのですか?

UPDATE

以下の内容のファイル/etc/docker/daemon.jsonを追加することで問題を解決しました

{
    "insecure-registries" : [ "hostname.cloudapp.net:5000" ]
}

そしてdockerを再起動します

Sudo systemctl daemon-reload
Sudo systemctl restart docker

その後、安全でないレジストリhostname.cloudapp.net:500が機能します。

75
EvgeniySharapov

(質問から回答をコピーする)

安全でないdockerレジストリを追加するには、次の内容でファイル/etc/docker/daemon.jsonを追加します。

{
    "insecure-registries" : [ "hostname.cloudapp.net:5000" ]
}

その後dockerを再起動します。

98
Matt Hulse

/etc/docker/daemon.jsonファイルを作成し、以下の内容を追加してからCentOS 7でdocker restartを実行すると問題は解決しました。

{
    "insecure-registries" : [ "hostname.cloudapp.net:5000" ]
}
9
Sunny

/etc/docker/daemon.jsonファイルを使った解決策は、Ubuntuではうまくいきませんでした。

/etc/default/dockerファイルでDockerデーモンにコマンドラインオプションを提供することで、UbuntuでDockerの安全でないレジストリを設定することができました。

# /etc/default/docker    
DOCKER_OPTS="--insecure-registry=a.example.com --insecure-registry=b.example.com"

同じ方法で、dockerイメージとボリュームストレージ、デフォルトのDNSサーバーなどのカスタムディレクトリを設定することもできます。

さて、Dockerデーモンが再起動した後(Sudo service docker restartを実行した後)、docker infoを実行すると表示されます。

Insecure Registries:
  a.example.com
  b.example.com
  127.0.0.0/8
3
Nikita