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
が機能します。
(質問から回答をコピーする)
安全でないdockerレジストリを追加するには、次の内容でファイル/etc/docker/daemon.json
を追加します。
{
"insecure-registries" : [ "hostname.cloudapp.net:5000" ]
}
その後dockerを再起動します。
/etc/docker/daemon.jsonファイルを作成し、以下の内容を追加してからCentOS 7でdocker restartを実行すると問題は解決しました。
{
"insecure-registries" : [ "hostname.cloudapp.net:5000" ]
}
/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