Zainstalowałem Docker na moim Ubuntu 13.10 (Saucy Salamander) i kiedy piszę w konsoli:
sudo docker pull busybox
Otrzymuję następujący błąd:
Pulling repository busybox
2014/04/16 09:37:07 Get https://index.docker.io/v1/repositories/busybox/images: dial tcp: lookup index.docker.io on 127.0.1.1:53: no answer from server
Wersja Docker:
$ sudo docker version
Client version: 0.10.0
Client API version: 1.10
Go version (client): go1.2.1
Git commit (client): dc9c28f
Server version: 0.10.0
Server API version: 1.10
Git commit (server): dc9c28f
Go version (server): go1.2.1
Last stable version: 0.10.0
Jestem za serwerem proxy bez uwierzytelnienia, a to jest mój /etc/apt/apt.conf
plik:
Acquire::http::proxy "http://192.168.1.1:3128/";
Acquire::https::proxy "https://192.168.1.1:3128/";
Acquire::ftp::proxy "ftp://192.168.1.1:3128/";
Acquire::socks::proxy "socks://192.168.1.1:3128/";
Co ja robię źle?
Acquire::socks::proxy
oznacza ustawienie proxy dla wszystkich adresów URL zaczynających się odsocks
schematu. Ponieważ twójsources.list
nie ma żadnychsocks://
adresów URL, ten wiersz jest całkowicie ignorowany.docker-compose
?Odpowiedzi:
Oto link do oficjalnej dokumentacji Dockera dla proxy HTTP: https://docs.docker.com/config/daemon/systemd/#httphttps-proxy
Krótki zarys:
Najpierw utwórz systemowy katalog rozwijany dla usługi Docker:
Teraz utwórz plik o nazwie,
/etc/systemd/system/docker.service.d/http-proxy.conf
który dodajeHTTP_PROXY
zmienną środowiskową:Jeśli masz wewnętrzne rejestry Docker, z którymi musisz się skontaktować bez pośrednictwa, możesz je określić za pomocą
NO_PROXY
zmiennej środowiskowej:Zmiany spłukiwania:
Sprawdź, czy konfiguracja została załadowana:
Uruchom ponownie doker:
źródło
/etc/default/docker
nie działa. Może powinienem usunąćexport
jak ten udokumentowany dla Centos.sudo systemctl restart docker
jest to absolutnie wymagane, aby działało.systemctl
nie jest dostępna dla Ubuntu 14.04, używaupstart
do uruchomienia usług.Twoje ustawienia proxy APT nie są powiązane z Dockerem.
Docker używa zmiennej środowiskowej HTTP_PROXY, jeśli jest dostępna. Na przykład:
Zamiast tego sugeruję zajrzeć do
/etc/default/docker
pliku konfiguracyjnego: powinieneś mieć linię do odkomentowania (i być może dostosowania), aby ustawienia serwera proxy były stosowane automatycznie. Następnie uruchom ponownie serwer Docker:źródło
W CentOS plik konfiguracyjny Dockera znajduje się w:
Dodanie poniższej linii pomogło mi uruchomić demona Docker za serwerem proxy:
źródło
export
. Czy jesteś pewien, że to prawda?export
działa tylko na CentOS6 i bez CentOS7export HTTP_PROXY=...
jest Bashizmem, w przypadku powłok innych niż Bash (takich jak co / bin / sh może być), użyj dwóch linii,HTTP_PROXY=...
a następnieexport HTTP_PROXY
To powiedziawszy, nie potrzebowałemexport
wcale.Jeśli używasz nowego Dockera dla komputerów Mac (lub Dockera dla systemu Windows ), kliknij prawym przyciskiem myszy ikonę zasobnika Docker i wybierz Preferencje (Windows: Ustawienia), a następnie przejdź do Zaawansowane, a następnie w obszarze Proxy określ ustawienia proxy. Kliknij Zastosuj i uruchom ponownie i poczekaj, aż Docker uruchomi się ponownie.
źródło
W systemie Ubuntu należy ustawić http_proxy dla demona Docker, a nie procesu klienta. Odbywa się to w
/etc/default/docker
(patrz tutaj ).źródło
Aby rozszerzyć odpowiedź Aruna , aby działało to w CentOS 7, musiałem usunąć polecenia „eksportuj”. Więc edytuj
I dodaj:
Następnie uruchom ponownie Docker:
Źródłem jest tego blogu .
źródło
Dlaczego lokalnie związany serwer proxy nie działa
Problem
Jeśli używasz lokalnego serwera proxy, np
127.0.0.1:8989
. Nasłuchujesz, nie zadziała w Docker na Mac . Z dokumentacji dokera :Podobnie jest po stronie serwera Docker. (Aby zrozumieć stronę Dockera po stronie serwera i klienta, spróbuj uruchomić
docker version
.) A strona serwera działa na warstwie wirtualizacji, która ma swoją własnąlocalhost
. Dlatego nie będzie łączyć się z serwerem proxylocalhost
w hoście systemu operacyjnego.Rozwiązanie
Tak więc, jeśli używasz lokalnego serwera proxy takiego jak ja, w zasadzie musisz wykonać następujące czynności, aby działał on z Docker na Maca:
Niech serwer proxy nasłuchuje
0.0.0.0
zamiast127.0.0.1
. Uwaga: będziesz potrzebować odpowiedniej konfiguracji zapory, aby zapobiec złośliwemu dostępowi do niej.Dodaj do
lo0
interfejsu alias sprzężenia zwrotnego , np .10.200.10.1/24
:Ustaw HTTP i / lub HTTPS proxy, aby
10.200.10.1:8989
z preferencji w menu paska Docker (zakładamy, że serwer proxy nasłuchuje na porcie8989
).Następnie przetestuj ustawienia proxy, uruchamiając polecenie w nowym kontenerze z obrazu, który nie został pobrany:
Uwaga: ustawiony przez nas alias pętli zwrotnej
ifconfig
nie zachowuje się po ponownym uruchomieniu. Utrwalenie to inny temat. Sprawdź ten post na blogu w języku japońskim (może pomóc Tłumacz Google).źródło
Oto poprawka, która zadziałała dla mnie: Ubuntu, wersja Docker: 1.6.2
W pliku
/etc/default/docker
dodaj wiersz:Uruchom ponownie Docker
źródło
Aby skonfigurować Docker do pracy z serwerem proxy, musisz dodać zmienną środowiskową HTTPS_PROXY / HTTP_PROXY do pliku sysconfig Dockera (
/etc/sysconfig/docker
).W zależności od tego, czy korzystasz
init.d
lub narzędzie serwisowe, musisz dodać instrukcję „eksport” (ze względu na dzienniki raportów błędów Debiana - # 767441. Przykłady w / etc / default / docker wprowadzają w błąd co do obsługiwanej składni ):Repozytorium Docker (Docker Hub) obsługuje tylko HTTPS. Aby Docker mógł współpracować z serwerami proxy przechwytującymi SSL, musisz dodać certyfikat główny proxy do magazynu zaufanych systemów.
W przypadku systemu CentOS skopiuj plik
/etc/pki/ca-trust/source/anchors/
i zaktualizuj magazyn zaufania urzędu certyfikacji, a następnie uruchom ponownie usługę Docker.Jeśli Twój serwer proxy używa uwierzytelniania NTLMv2 - musisz użyć pośrednich serwerów proxy, takich jak Cntlm, do mostkowania uwierzytelnienia. Ten post na blogu szczegółowo to wyjaśnia .
źródło
W nowej wersji Dockera , mechanizmu dokującego , w dystrybucji opartej na systemie należy dodać wiersz zmiennej środowiskowej do /lib/systemd/system/docker.service , jak wspominają inni:
źródło
Po zainstalowaniu Dockera wykonaj następujące czynności:
Następnie możesz pociągnąć lub zrobić cokolwiek:
źródło
Ponieważ nie mogę jeszcze komentować:
W przypadku CentOS 7 musiałem aktywować plik EnvironmentFile w „docker.service”, tak jak to opisano tutaj: Kontroluj i konfiguruj Docker za pomocą systemd .
Edycja: Dodam moje rozwiązanie, jak podano przez Nilesha. Musiałem otworzyć „/etc/systemd/system/docker.service” i musiałem dodać w sekcji
Dopiero wtedy plik „etc / sysconfig / docker” został załadowany do mojego systemu.
źródło
Aby rozwiązać problem z zawijaniem się w kompilacji Dockera, dodałem następujące elementy w pliku Docker:
Zauważ, że instrukcja ENV jest PRZED instrukcją RUN.
Aby umożliwić demonowi Dockerowi dostęp do Internetu (korzystam z Kitematic z boot2docker), dodałem
/var/lib/boot2docker/profile
:Następnie ponownie uruchomiłem Dockera za pomocą
sudo /etc/init.d/docker restart
.źródło
Jeśli używasz proxy socks5, oto mój test z Dockerem 17.03.1-ce z ustawieniem „all_proxy” i zadziałało:
źródło
Kompletne rozwiązanie dla systemu Windows do konfiguracji ustawień proxy.
Możesz go skonfigurować bezpośrednio, klikając prawym przyciskiem myszy ustawienia, ikonę Docker, a następnie Serwery proxy.
Tam możesz skonfigurować adres serwera proxy, port, nazwę użytkownika i hasło.
W tym formacie:
Przykład:
Nic więcej niż to.
źródło
Proste ustawienie zmiennych środowiskowych proxy nie pomogło mi w wersji 1.0.1 ... Musiałem zaktualizować
/etc/default/docker.io
plik o poprawną wartość dla zmiennej „http_proxy”.źródło
Jeśli korzystasz z systemu Ubuntu, wykonaj te polecenia, aby dodać serwer proxy.
I odkomentuj linie, które określają
I zastąp go odpowiednim serwerem proxy i nazwą użytkownika.
Następnie uruchom ponownie Docker, używając:
Teraz możesz uruchamiać polecenia Docker za serwerem proxy:
źródło
Być może musisz skonfigurować małe litery zmiennych. W moim przypadku mój plik /etc/systemd/system/docker.service.d/http-proxy.conf wygląda następująco:
Powodzenia! :)
źródło
Miałem również ten sam problem za zaporą ogniową. Wykonaj poniższe kroki:
Nie używaj ani nie usuwaj pliku https_prxoy.conf.
Załaduj ponownie i uruchom ponownie kontener Docker:
źródło
Jeśli korzystasz z Ubuntu, powinieneś wykonać następujące polecenie:
I ponownie załaduj Docker:
Lub przejdź do
/etc/docker.io
nano ...źródło
Na Ubuntu 14.04 (Trusty Tahr) z Dockerem 1.9.1 po prostu odkomentowałem
http_proxy
linię, zaktualizowałem wartość, a następnie ponownie uruchomiłem usługę Docker.i wtedy
źródło
Na RHEL6.6 działa to tylko (zauważ użycie
export
):/ etc / sysconfig / docker
UWAGA: Oba mogą korzystać z
http
protokołu.)Dzięki https://crondev.com/running-docker-behind-proxy/
źródło
W mojej sieci Ubuntu działa za korporacyjnym serwerem proxy ISA. I wymaga uwierzytelnienia. Wypróbowałem wszystkie wyżej wymienione rozwiązania i nic nie pomogło. Naprawdę pomogło mi napisanie linii proxy w pliku
/etc/systemd/system/docker.service.d/https-proxy.conf
bez nazwy domeny.Zamiast
lub
i niektóre inne zamienniki, takie jak
@ -> %40
lub\ -> \\
próbowałem użyćI to działa teraz.
źródło
Spróbuj tego:
źródło
To nie do końca odpowiada na pytanie, ale może pomóc, zwłaszcza jeśli nie chcesz zajmować się plikami serwisowymi.
W przypadku, gdy to Ty hostujesz obraz, jednym ze sposobów jest konwersja obrazu jako archiwum tar, przy użyciu czegoś takiego jak na serwerze .
Wystarczy pobrać archiwum i przekształcić go z powrotem w obraz.
źródło