English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Sfondo
In alcuni ambienti di laboratorio, i server non hanno il permesso di connettersi direttamente alla rete esterna e devono utilizzare un proxy di rete. Di solito configuriamo il proxy di rete direttamente nei file di configurazione come /etc/environment, /etc/profile e così via, il che è funzionante per la maggior parte delle operazioni. Tuttavia, i comandi docker non possono utilizzare questi proxy.
Ad esempio, quando si esegue docker pull è necessario scaricare l'immagine da internet, potrebbe apparire un errore del genere:
$ docker pull hello-world Impossibile trovare l'immagine 'hello-world:latest' localmente Tirando il repository docker.io/library/hello-world docker: La rete è scaduta durante il tentativo di connettersi a https://index.docker.io/v1/repositories/library/hello-world/images. Potrebbe essere utile controllare la tua connessione internet o se sei dietro un proxy. Vedi 'docker run --help'.
ps: Questo articolo è stato testato con successo su Ubuntu 16.04.
Soluzione uno:
Fermare il servizio docker, avviare manualmente il daemon docker utilizzando il metodo di ascolto su tutti gli interfacce di rete del porto 2375.
$ systemctl stop docker.service $ nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock &
Soluzione due:
Modificare il file di configurazione, su Ubuntu è /etc/default/docker, su CentOS è /etc/sysconfig/docker. Tuttavia, modificare questi due file per configurare il daemon è sconsigliato. Non si consiglia di utilizzare questo metodo.
HTTP_PROXY="http://[proxy-addr]:[proxy-port]/" HTTPS_PROXY="https://[proxy-addr]:[proxy-port]/" export HTTP_PROXY HTTPS_PROXY
Soluzione tre:
Questo metodo è persistente e le modifiche rimarranno efficaci. Questo metodo sovrascrive il file docker.service predefinito.
1. Creare un directory systemd integrato per il servizio docker
$ mkdir -p /etc/systemd/system/docker.service.d
2. Crea il file /etc/systemd/system/docker.service.d/http-proxy.conf e aggiungi l'ambiente variable HTTP_PROXY. Modifica [proxy-addr] e [proxy-port] con l'indirizzo e la porta del proxy effettivi:}
[Service] Environment="HTTP_PROXY=http://[proxy-addr]:[proxy-port]/" "HTTPS_PROXY=https://[proxy-addr]:[proxy-port]/"
3. Se ci sono ancora Docker registries interni che non richiedono l'uso di un proxy per l'accesso, è necessario definire l'ambiente variable NO_PROXY:
[Service] Environment="HTTP_PROXY=http://[proxy-addr]:[proxy-port]/" "HTTPS_PROXY=https://[proxy-addr]:[proxy-port]/" "NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com"
4. Aggiorna la configurazione:
$ systemctl daemon-reload
5. Riavvia il servizio Docker:
$ systemctl restart docker
Questo è tutto il contenuto dell'articolo, speriamo che sia utile per la tua apprendimento e che tu sostenga fortemente la guida di urla.
Dichiarazione: il contenuto di questo articolo è stato tratto da Internet, il copyright spetta ai rispettivi autori, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non detiene i diritti di proprietà, non è stato editato manualmente e non assume alcuna responsabilità legale. Se trovi contenuti sospetti di violazione del copyright, ti preghiamo di inviare una e-mail a: notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare il problema e fornire prove pertinenti. Una volta verificata, questo sito rimuoverà immediatamente il contenuto sospetto di violazione del copyright.