2016-02-09 6 views
5

aus dem Inneren eines Docker Container, ich binDocker Behälter nicht zu https Verbindungsendpunkte

# openssl s_client -connect rubygems.org:443 -state -nbio 2>&1 | grep "^SSL"  

SSL_connect:before/connect initialization 
SSL_connect:SSLv2/v3 write client hello A 
SSL_connect:error in SSLv2/v3 read server hello A 

laufen, dass alles, was ich

bekommen

Ich kann nicht aus dem Docker Behälter auf jede https-Website verbinden. Der Container läuft auf einer openstack vm. Die VM kann sich über https verbinden.

Irgendwelche Ratschläge?

UPDATE

[email protected]:/# curl -vv https://google.com 
* Rebuilt URL to: https://google.com/ 
* Hostname was NOT found in DNS cache 
* Trying 216.58.217.46... 
* Connected to google.com (216.58.217.46) port 443 (#0) 
* successfully set certificate verify locations: 
* CAfile: none 
    CApath: /etc/ssl/certs 
* SSLv3, TLS handshake, Client hello (1): 

und dann hängt es.

Auch ich bekomme jetzt intermittierende Erfolge.

Sanity Checks:

  • die Docker ips ändert das Problem

  • Die Docker-Container

    auf meinem lokalen Rechner funktioniert nicht beheben
  • Die Docker-Container auf andere arbeiten Wolken

  • Docker 1.10.0 funktioniert nicht in den VMs

  • Docker 1.9.1 Arbeiten in den VMs

+0

bezogen werden: http://help.rubygems.org/discussions/problems/20530-ssl-issues-with-bundlerrubygemsorg-bundle-install-from-inside-of- a-docker-container – Eli

+0

Wenn Sie den obigen Link analysieren, fehlt etwas in Ihrer Docker-Distribution. Ca-Zertifikate vielleicht? – user2105103

+0

@Eli Dies ist kein Rubygems-spezifisches Problem. Kein Container kann auf HTTPS-Sites zugreifen. @ user2105103, Ich habe ca-Zertifikate installiert, 'apt-get update' hängt –

Antwort

4

ich eine Lösung durch die Docker community

Openstack-Netzwerk gegeben wurde, scheint niedriger MTU-Werte zu verwenden und Docker schließen nicht die MTU Einstellungen von der Netzwerkkarte des Hosts since 1.10.

Um Docker-Daemon mit benutzerdefinierten MTU-Einstellungen ausführen, Sie this blog post folgen kann, das sagt:

$ cp /lib/systemd/system/docker.service /etc/systemd/system/docker.service 

Bearbeiten einer Zeile in der neuen Datei wie folgt aussehen:

ExecStart=/usr/bin/docker daemon -H fd:// –mtu=1454 

MTU von 1454 ist der Wert, der bei OpenStack üblich ist. Sie können es mit ifconfig in Ihrem Host nachschlagen.

Schließlich Docker neu starten:

$ sudo systemctl daemon-reload 
$ sudo service docker restart