dockerのproxyに関するメモ。
CentOS 7.6.1810 、docker version 18.09.0 の環境下で遭遇した事象。
発生した事象
proxy配下の環境で、envoyのdockerをpullしようとした際に、以下のエラーが発生。
$ docker pull envoyproxy/envoy:latest Error response from daemon: Get https://registry-1.docker.io/v2/: proxyconnect tcp: tls: oversized record received with length 20527
proxy関連のエラーであるが、数か月前にはproxyの設定済み。
設定した当時は、別のdockerコンポーネントはpullすることができていた。
原因:
エラーメッセージで検索してみると、以下の情報あり。
https://forums.docker.com/t/oversized-record-received-while-trying-docker-pull/51281
With Docker version 17.09.0-ce, build afdb6d4, it was working for me, but after yum update to get Docker version 18.06.0-ce, build 0ffa825, I had the same problem.
yumでインストールしていたdockerで、バージョンが上がった事によりプロキシ設定箇所の動きが変わった様子。何かわかったら追記しておく。
修正結果:
プロキシサーバのURLを、httpsでなくhttpに修正してみる。 元々はプロキシサーバ側で提供されていたのはhttpプロトコルのみであったので、本来の値に戻したことになる。
vi /etc/systemd/system/docker.service.d/http-proxy.conf
※ プロキシサーバの設定プロトコルを「https:」を「http:」に変更。
[Service] Environment="HTTPS_PROXY=https://proxy.xxx.jp:8080/" "HTTP_PROXY=https://proxy.xxx.jp:8080/" ↓ [Service] Environment="HTTPS_PROXY=http://proxy.xxx.jp:8080/" "HTTP_PROXY=http://proxy.xxx.jp:8080/"
設定の読込とserviceの再起動を実施する。
$ sudo systemctl daemon-reload $ sudo systemctl restart docker
その後、もう一度docker pullを実施してみる。
$ docker pull envoyproxy/envoy:latest latest: Pulling from envoyproxy/envoy b849b56b69e7: Pull complete 42986ef25bcd: Pull complete d927c1b717ec: Pull complete 15b86ea20233: Pull complete 78d08a970f8a: Pull complete a548d32f37a6: Pull complete 87e0dff5f99d: Pull complete f50713996052: Pull complete 831620132a14: Pull complete Digest: sha256:4abfb9f209947693a191b12f9a00333f2732daff342bdbe4b50328de5cb11d17 Status: Downloaded newer image for envoyproxy/envoy:latest
pullが実行できた!