Докер на Centos7: соединение отказано - PullRequest
0 голосов
/ 08 июня 2018

Я знаю, что уже было опубликовано несколько вопросов по аналогичным вопросам, но, к сожалению, мне все еще не удается заставить работать следующую команду:

$ sudo docker run hello-world

Невозможно найти образ 'hello-world: latest' локально Docker: Ответ об ошибке от демона: Получить https://registry -1.docker.io / v2 / : dial tcp 52.54.216.153:443: getsockopt: соединениеотказалась.См. «Docker run --help».

Я использую виртуальную машину CentOS7 в VirtualBox с настройками прокси HTTP / HTTPS / FTP, настроенными на системном уровне.Эта конфигурация прокси работает нормально для Chrome и других приложений.

После просмотра этого форума я попытался создать явные настройки прокси для приложения Docker путем:

  • созданияфайл ~ / .docker / config.json, как указано в https://docs.docker.com/network/proxy/, а затем выполните команду «systemctl restart docker»

  • , создав файл / etc / systemd / system / docker.service.d / http-proxy.conf, а затем выполните «systemctl daemon-reload» и «systemctl restart docker»

Вот версия Docker на моей виртуальной машине:

$ sudo docker version

Client:
 Version:      18.03.1-ce
 API version:  1.37
 Go version:   go1.9.5
 Git commit:   9ee9f40
 Built:        Thu Apr 26 07:20:16 2018
 OS/Arch:      linux/amd64
 Experimental: false
 Orchestrator: swarm

Server:
 Engine:
  Version:      18.03.1-ce
  API version:  1.37 (minimum version 1.12)
  Go version:   go1.9.5
  Git commit:   9ee9f40
  Built:        Thu Apr 26 07:23:58 2018
  OS/Arch:      linux/amd64
  Experimental: false

$ curl -v https://registry -1.docker.io / v2 /

* About to connect() to proxy XXX port 8012 (#0)
...
> 
< HTTP/1.1 200 Connection established
< 
* Proxy replied OK to CONNECT request
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* SSL connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate:
*   subject: CN=*.docker.io
*   start date: Aug 02 00:00:00 2017 GMT
*   expire date: Sep 02 12:00:00 2018 GMT
*   common name: *.docker.io
*   issuer: CN=Amazon,OU=Server CA 1B,O=Amazon,C=US
> GET /v2/ HTTP/1.1
> User-Agent: curl/7.29.0
> Host: registry-1.docker.io
> Accept: */*
> 
< HTTP/1.1 401 Unauthorized
< Content-Type: application/json; charset=utf-8
< Docker-Distribution-Api-Version: registry/2.0
< Www-Authenticate: Bearer realm="https://auth.docker.io/token",service="registry.docker.io"
< Date: Fri, 08 Jun 2018 16:00:17 GMT
< Content-Length: 87
< Strict-Transport-Security: max-age=31536000
< 
{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":null}]}
* Connection #0 to host XXX left intact

$ curl -v https://54.152.209.167

   ...
   ...
< HTTP/1.1 200 Connection established
< 
* Proxy replied OK to CONNECT request
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* Server certificate:
*   subject: CN=*.docker.io
*   start date: Aug 02 00:00:00 2017 GMT
*   expire date: Sep 02 12:00:00 2018 GMT
*   common name: *.docker.io
*   issuer: CN=Amazon,OU=Server CA 1B,O=Amazon,C=US
* NSS error -12276 (SSL_ERROR_BAD_CERT_DOMAIN)
* Unable to communicate securely with peer: requested domain name does not match the server's certificate.
* Closing connection 0
curl: (51) Unable to communicate securely with peer: requested domain name does not match the server's certificate.

1 Ответ

0 голосов
/ 14 июня 2018

Как уже упоминалось в https://docs.docker.com/config/daemon/systemd/#httphttps-proxy,, следующие команды решили мою проблему.Это как-то потеряно в документе, ИМО.

$ sudo mkdir -p /etc/systemd/system/docker.service.d

vi /etc/systemd/system/docker.service.d/http-proxy.conf 
[Service]
Environment="http://IP:PORT/"

vi /etc/systemd/system/docker.service.d/https-proxy.conf 
[Service]
Environment="http://IP:PORT/"

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
$ systemctl show --property=Environment docker
Environment=HTTP_PROXY=http://"http://IP:PORT/"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...