ไม่สามารถดาวน์โหลดอิมเมจ Docker หลังพร็อกซี


330

ฉันติดตั้ง Docker บน Ubuntu 13.10 (Saucy Salamander) ของฉันและเมื่อฉันพิมพ์ในคอนโซล:

sudo docker pull busybox

ฉันได้รับข้อผิดพลาดต่อไปนี้:

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

รุ่นนักเทียบท่า:

$ 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

ฉันอยู่หลังพร็อกซีเซิร์ฟเวอร์ที่ไม่มีการตรวจสอบสิทธิ์และนี่คือ/etc/apt/apt.confไฟล์ของฉัน:

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/";

ผมทำอะไรผิดหรือเปล่า?


6
สำหรับผู้ใช้ Windows และ boot2docker ดูstackoverflow.com/a/29303930/6309
VonC

1
หนึ่งรายละเอียดเล็กน้อย: apt ไม่รองรับ SOCKS ผู้รับมอบฉันทะเลย Acquire::socks::proxyหมายถึงตั้งค่าพร็อกซีสำหรับ URL ทั้งหมดที่เริ่มต้นด้วยsocksสกีม เนื่องจากคุณsources.listไม่มีsocks://URL ใด ๆ เลยบรรทัดนั้นจึงถูกละเว้นทั้งหมด
Hans-Christoph Steiner

เกี่ยวกับdocker-composeอะไร
Mohammad Masoumi

คำตอบ:


796

นี่คือลิงค์ไปยังเอกสารนักเทียบท่าอย่างเป็นทางการสำหรับพร็อกซี HTTP: https://docs.docker.com/config/daemon/systemd/#httphttps-proxy

เค้าร่างอย่างรวดเร็ว:

ขั้นแรกสร้างไดเรกทอรีดร็อปดาวน์ systemd สำหรับบริการ Docker:

mkdir /etc/systemd/system/docker.service.d

ตอนนี้สร้างไฟล์ชื่อ/etc/systemd/system/docker.service.d/http-proxy.confที่เพิ่มHTTP_PROXYตัวแปรสภาพแวดล้อม:

[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80/"

หากคุณมีการลงทะเบียนภายใน Docker ที่คุณต้องติดต่อโดยไม่ต้องใช้พร็อกซี่คุณสามารถระบุได้ผ่านNO_PROXYตัวแปรสภาพแวดล้อม:

Environment="HTTP_PROXY=http://proxy.example.com:80/"
Environment="NO_PROXY=localhost,127.0.0.0/8,docker-registry.somecorporation.com"

ล้างการเปลี่ยนแปลง:

$ sudo systemctl daemon-reload

ตรวจสอบว่าโหลดการกำหนดค่าแล้ว:

$ sudo systemctl show --property Environment docker
Environment=HTTP_PROXY=http://proxy.example.com:80/

รีสตาร์ท Docker:

$ sudo systemctl restart docker

3
สิ่งนี้ใช้ได้กับ Debian Jessie ที่ใช้ Docker 1.6.2 อย่างใดการแก้ไข/etc/default/dockerไม่ทำงาน บางทีฉันควรลบexportเช่นเดียวกับที่บันทึกไว้สำหรับ Centos
neurite

2
สำหรับ SysV รุ่นเก่าแก้ไข / etc / sysconfig / dockerเช่นเดียวกับในdocs.oracle.com/cd/E37670_01/E37355/html/… - Oracle Linux 6.7
SidJ

2
หมายเหตุ: ฉันคิดว่า 'daemon-reload' จะพอเพียงที่จะใช้การเปลี่ยนแปลงกับนักเทียบท่า แต่จริง ๆ แล้วsudo systemctl restart dockerเป็นสิ่งจำเป็นอย่างยิ่งสำหรับการทำงาน
Jose Alban

4
สำหรับ Ubuntu 14.04 ดูคำตอบของ @ n3o เนื่องจากsystemctl ไม่สามารถใช้งานได้กับ Ubuntu 14.04 จึงใช้upstartบริการนี้
chinmay

4
ตอนนี้มันกลับมา "ต้องใช้การรับรองความถูกต้องของพร็อกซี" ... วิธีการตั้งค่าชื่อผู้ใช้และรหัสผ่าน?
pinei

88

การตั้งค่าพร็อกซี APT ของคุณไม่เกี่ยวข้องกับ Docker

นักเทียบท่าใช้ตัวแปรสภาพแวดล้อม HTTP_PROXY หากมี ตัวอย่างเช่น:

sudo HTTP_PROXY=http://192.168.1.1:3128/ docker pull busybox

แต่ฉันขอแนะนำให้คุณดู/etc/default/dockerไฟล์กำหนดค่าของคุณ: คุณควรมีบรรทัดที่ไม่ใส่เครื่องหมายข้อคิดเห็น (และอาจปรับ) เพื่อให้การตั้งค่าพร็อกซีของคุณถูกนำไปใช้โดยอัตโนมัติ จากนั้นรีสตาร์ทเซิร์ฟเวอร์ Docker:

service docker restart

8
ในกรณีของฉัน / etc / default / docker มีตัวอย่างที่ต่ำกว่า (http_proxy) แต่มีสิ่งที่ทำงานฉันต้องเพิ่มการตั้งค่าตัวพิมพ์ใหญ่ (HTTP_PROXY) ที่นั่น
Mekk

คุณไม่ควรตั้งค่า HTTP_PROXY สำหรับไคลเอ็นต์นักเทียบท่า
thomas.han

3
ไม่ทำงานกับนักเทียบท่า 1.9.1 แต่ให้ดูคำตอบนี้ด้านล่าง
Peter Dotchev

1
สิ่งนี้ใช้ได้กับ Ubuntu 14.04 เมื่อติดตั้ง docker จาก apt.dockerproject.org
Michael Kopp

1
วิธีนี้ใช้ไม่ได้กับ Debian 8.8 และคุณต้องตั้งค่า http_proxy ใน /etc/systemd/system/docker.service.d ดังที่แสดงในคำตอบที่ยอมรับ
Roman Mik

60

บน CentOS ไฟล์กำหนดค่าสำหรับ Docker อยู่ที่:

/etc/sysconfig/docker

การเพิ่มบรรทัดด้านล่างช่วยให้ Daer Docker ทำงานกับพร็อกซีเซิร์ฟเวอร์:

HTTP_PROXY="http://<proxy_host>:<proxy_port>"
HTTPS_PROXY="http://<proxy_host>:<proxy_port>"

7
ส่งออก HTTP_PROXY = "http: // <username>: <password> @ <proxy_host>: <proxy_port>" สำหรับผู้ที่อยู่เบื้องหลังพร็อกซีขององค์กร
Nicolas Mommaerts

exportสำหรับฉันนี้ทำงานเท่านั้นโดยไม่ต้อง คุณแน่ใจหรือไม่ว่าถูกต้อง?
ราน

4
สำหรับฉันexportใช้งานได้เฉพาะกับ CentOS6 และไม่มีใน CentOS7
user2363318

1
ใน Centos7 ฉันต้องไม่ใช้การส่งออกด้วย
Banjocat

2
export HTTP_PROXY=...เป็น Bashism สำหรับ non-Bash shells (เช่นอะไร / bin / sh อาจจะ) ใช้สองบรรทัดHTTP_PROXY=...แล้วexport HTTP_PROXY บอกว่าฉันไม่ต้องการexportเลย
คาเมรอนเคอร์

42

หากคุณใช้Docker สำหรับ Mac (หรือDocker สำหรับ Windows ) เพียงคลิกขวาที่ไอคอนถาด Docker และเลือกPreferences (Windows: การตั้งค่า) จากนั้นไปที่ขั้นสูงและภายใต้ Proxies ระบุการตั้งค่าพร็อกซี่ของคุณที่นั่น คลิกใช้และรีสตาร์ทและรอจนกว่า Docker จะรีสตาร์ท


ในกรณีที่มีคนใช้พร็อกซีที่มีการเชื่อมต่อแบบโลคัล (เช่น127.0.0.1:8787 ) บน macOS เช่นฉันนี่คือคำแนะนำในการตั้งค่าที่ละเอียดยิ่งขึ้น: เหตุใดพร็อกซีที่เชื่อมต่อแบบโลคัลไม่ทำงาน
Rockallite

ฉันได้ตั้งผู้รับมอบฉันทะของฉันผ่านทางหน้าต่าง: การตั้งค่าพร็อกซี แต่เหล่านี้จะไม่แพร่กระจายไปยังภาชนะของฉันstackoverflow.com/questions/48272933/...
amique

สำหรับฉันฉันต้องการเพียงเพื่อใส่ในเซิร์ฟเวอร์ DNS ของฉันและมันทำงานได้แล้ว ขอบคุณ
richin

32

บน Ubuntu คุณต้องตั้งค่า http_proxy สำหรับ Docker daemon ไม่ใช่กระบวนการของไคลเอ็นต์ สิ่งนี้ทำใน/etc/default/docker(ดูที่นี่ )


มันบอกว่าฉันไม่ได้รับอนุญาตให้เข้าถึงกลุ่มของคุณ ในลิงค์
Azizbro

ฉันไม่คิดว่ามันจะใช้งานได้กับ Ubuntu 18.04 ขึ้นไป
zslim

27

ในการขยายคำตอบของอรุณเพื่อให้ทำงานใน CentOS 7 ได้ฉันต้องลบคำสั่ง "ส่งออก" ดังนั้นแก้ไข

/etc/sysconfig/docker

และเพิ่ม:

HTTP_PROXY="http://<proxy_host>:<proxy_port>"
HTTPS_PROXY="https://<proxy_host>:<proxy_port>"
http_proxy="${HTTP_PROXY}"
https_proxy="${HTTPS_PROXY}"

จากนั้นรีสตาร์ท Docker:

sudo service docker restart

แหล่งที่มาการโพสต์บล็อกนี้


2
ต้องใช้ HTTP_PROXY เท่านั้น (ทดสอบบน Fedora 20)
sheldonh

เหมาะสำหรับ Suse 12!
Dean Meehan

14

เหตุใดพร็อกซีที่เชื่อมต่อภายในเครื่องไม่ทำงาน

ปัญหา

หากคุณกำลังใช้งานในประเทศที่ถูกผูกไว้พร็อกซี่เช่นฟัง127.0.0.1:8989ก็จะไม่ทำงานในหางสำหรับ Mac จากเอกสารนักเทียบท่า :

ฉันต้องการเชื่อมต่อจากคอนเทนเนอร์ไปยังบริการบนโฮสต์

Mac มีการเปลี่ยนแปลงที่อยู่ IP (หรือไม่มีถ้าคุณไม่มีการเข้าถึงเครือข่าย) คำแนะนำปัจจุบันของเราคือการแนบ IP ที่ไม่ได้ใช้กับlo0อินเตอร์เฟสบน Mac ตัวอย่างเช่น: sudo ifconfig lo0 alias 10.200.10.1/24และตรวจสอบให้แน่ใจว่าบริการของคุณกำลังฟังที่อยู่นี้หรือ0.0.0.0(เช่นไม่ใช่127.0.0.1) จากนั้นคอนเทนเนอร์สามารถเชื่อมต่อกับที่อยู่นี้

คล้ายกันสำหรับฝั่งเซิร์ฟเวอร์ Docker (เพื่อให้เข้าใจถึงฝั่งเซิร์ฟเวอร์และฝั่งไคลเอ็นต์ของหางพยายามที่จะเรียกdocker version.) และฝั่งเซิร์ฟเวอร์ทำงานบนชั้น virtualization localhostซึ่งมีของตัวเอง ดังนั้นมันจะไม่เชื่อมต่อกับพร็อกซีเซิร์ฟเวอร์ในlocalhostของโฮสต์ระบบปฏิบัติการ

การแก้ไขปัญหา

ดังนั้นหากคุณใช้พร็อกซีที่มีการเชื่อมต่อในพื้นที่อย่างฉันโดยทั่วไปคุณจะต้องทำสิ่งต่อไปนี้เพื่อให้สามารถใช้งานได้กับ Docker for Mac:

  1. ทำให้เซิร์ฟเวอร์พร็อกซีฟังบนแทน0.0.0.0 ข้อควรระวัง:คุณจะต้องมีการกำหนดค่าไฟร์วอลล์ที่เหมาะสมเพื่อป้องกันการเข้าถึงที่เป็นอันตราย127.0.0.1

  2. เพิ่มชื่อแทนลูปแบ็คไปยังlo0อินเทอร์เฟซเช่น10.200.10.1/24:

    sudo ifconfig lo0 alias 10.200.10.1/24
    
  3. ตั้ง HTTP และ / หรือ HTTPS พร็อกซี10.200.10.1:8989จากการตั้งค่าในเมนูถาดหาง (สมมติว่าพร็อกซีเซิร์ฟเวอร์ฟังพอร์ต8989)

หลังจากนั้นให้ทดสอบการตั้งค่าพร็อกซีโดยเรียกใช้คำสั่งในคอนเทนเนอร์ใหม่จากรูปภาพที่ไม่ได้ดาวน์โหลด:

$ docker rmi -f hello-world
  ...

$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world

c04b14da8d14: Pull complete 
Digest: sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9
Status: Downloaded newer image for hello-world:latest
  ...

แจ้งให้ทราบifconfigล่วงหน้า :นามแฝงลูปแบ็คที่กำหนดโดยไม่รักษาหลังจากรีบูต เพื่อให้มันคงเป็นหัวข้ออื่น โปรดตรวจสอบโพสต์บล็อกนี้เป็นภาษาญี่ปุ่น (Google แปลภาษาอาจช่วยได้)


ขอบคุณสำหรับสิ่งนี้ฉันได้พยายามหาวิธีแก้ปัญหาสำหรับปีที่แล้วหรือเพื่อให้ได้ SquidMan บน Mac เมื่อพยายามเข้าถึงทั้งงานและเครือข่ายภายนอกผ่านทาง บริษัท พร็อกซี่ ฉันได้รับสิ่งนี้ติดรอบโดย hooking เป็น launchd เพื่อกำหนดค่าเมื่อเริ่มต้น developer.apple.com/library/content/documentation/MacOSX/…
สอบ

ขอบคุณชาย ในที่สุดฉันก็พบโพสต์ของคุณ! มันได้ผล. หากคุณใช้ cntlm อย่าลืมเพิ่มการเชื่อม 0.0.0.0 ในการกำหนดค่าของคุณ เช่นฟัง 0.0.0.0: 8989
Felix

ฉันใช้ cntlm เหมือนกันและเปลี่ยนเป็นโหมดเกตเวย์
Lee Gary

10

นี่คือการแก้ไขที่ใช้งานได้สำหรับฉัน: Ubuntu, Docker เวอร์ชั่น: 1.6.2

ในไฟล์/etc/default/dockerเพิ่มบรรทัด:

export http_proxy='http://<host>:<port>'

รีสตาร์ท Docker

sudo service docker restart

ทำงานกับ Docker v1.12.1 บน Ubuntu 14.04 และมิ้นต์ 17.3
wmarbut

1
ใช้งานได้กับ 14.04.4 + Docker รุ่น 17.03.1-ce, build c6d412e
okwap

8

ในการกำหนดค่า Docker ให้ทำงานกับพร็อกซีคุณจะต้องเพิ่มตัวแปรสภาพแวดล้อม HTTPS_PROXY / HTTP_PROXY ไปยังไฟล์ Docker sysconfig ( /etc/sysconfig/docker)

ทั้งนี้ขึ้นอยู่กับว่าคุณใช้init.dหรือเครื่องมือบริการที่คุณต้องการเพิ่มคำสั่ง "ส่งออก" (เนื่องจากบันทึกรายงาน Debian Bug - # 767441 ตัวอย่างใน / etc / default / docker ทำให้เข้าใจผิดเกี่ยวกับไวยากรณ์ที่รองรับ ):

HTTPS_PROXY="https://<user>:<password>@<proxy-host>:<proxy-port>"
HTTP_PROXY="https://<user>:<password>@<proxy-host>:<proxy-port>"
export HTTP_PROXY="https://<user>:<password>@<proxy-host>:<proxy-port>"
export HTTPS_PROXY="https://<user>:<password>@<proxy-host>:<proxy-port>"

ที่เก็บข้อมูล Docker (Docker Hub) รองรับ HTTPS เท่านั้น ในการทำให้ Docker ทำงานกับพร็อกซีสกัดกั้น SSL คุณจะต้องเพิ่มใบรับรองรูตพร็อกซีในที่เก็บที่เชื่อถือของระบบ

สำหรับ CentOS ให้คัดลอกไฟล์ไปยัง/etc/pki/ca-trust/source/anchors/และอัพเดต CA trust store และรีสตาร์ทเซอร์วิส Docker

หากพร็อกซีของคุณใช้การตรวจสอบสิทธิ์ NTLMv2 คุณต้องใช้พร็อกซี่กลางเช่นCntlmเพื่อเชื่อมการรับรองความถูกต้อง โพสต์บล็อกนี้จะอธิบายในรายละเอียด


5

ใน Docker -engineเวอร์ชันใหม่ในการแจกจ่ายแบบอิงsystemdคุณควรเพิ่มบรรทัดตัวแปรสภาพแวดล้อมลงใน/lib/systemd/system/docker.serviceตามที่ผู้อื่นกล่าวถึง:

Environment="HTTP_PROXY=http://hostname_or_ip:port/"

สิ่งนี้จำเป็นสำหรับ RHEL7
dbalakirev

เพิ่มบรรทัดลงในส่วน [บริการ]
volkit

5

หลังจากติดตั้ง Docker แล้วให้ทำดังนี้

[mdesales@pppdc9prd1vq ~]$ sudo HTTP_PROXY=http://proxy02.ie.xyz.net:80 ./docker -d &
[2] 20880

จากนั้นคุณสามารถดึงหรือทำอะไรก็ได้:

mdesales@pppdc9prd1vq ~]$ sudo docker pull base
2014/04/11 00:46:02 POST /v1.10/images/create?fromImage=base&tag=
[/var/lib/docker|aa088847] +job pull(base, )
Pulling repository base
b750fe79269d: Download complete
27cf78414709: Download complete
[/var/lib/docker|aa088847] -job pull(base, ) = OK (0)

3

เนื่องจากฉันยังไม่ได้รับอนุญาตให้แสดงความคิดเห็น:

สำหรับ CentOS 7 ฉันต้องการที่จะเปิดใช้งาน EnvironmentFile ภายใน "docker.service" เหมือนว่ามันจะมีการอธิบายไว้ที่นี่: การควบคุมและการกำหนดค่าเทียบท่ากับ systemd

แก้ไข: ฉันเพิ่มโซลูชันตามที่ระบุไว้โดย Nilesh ฉันต้องการเปิด "/etc/systemd/system/docker.service" และฉันต้องเพิ่มในส่วน

[บริการ]

EnvironmentFile = - / etc / sysconfig / นักเทียบท่า

เมื่อนั้นโหลดไฟล์ "etc / sysconfig / docker" บนระบบของฉัน


3

เพื่อแก้ปัญหาด้วย curl ใน build Docker ฉันได้เพิ่มสิ่งต่อไปนี้ภายใน Dockerfile:

ENV http_proxy=http://infoprx2:8080
ENV https_proxy=http://infoprx2:8080
RUN apt-get update && apt-get install -y curl vim

โปรดทราบว่าคำสั่ง ENV เป็นคำสั่ง RUN ก่อน

และเพื่อให้ Docker daemon สามารถเข้าถึงอินเทอร์เน็ต (ฉันใช้ Kitematic กับ boot2docker) ฉันได้เพิ่มสิ่งต่อไปนี้ลงใน/var/lib/boot2docker/profile:

export HTTP_PROXY=http://infoprx2:8080
export HTTPS_PROXY=http://infoprx2:8080

sudo /etc/init.d/docker restartจากนั้นฉันเริ่มต้นใหม่กับนักเทียบท่า


3

หากใช้พร็อกซี socks5 นี่คือการทดสอบของฉันกับ Docker 17.03.1-ce พร้อมการตั้งค่า "all_proxy" และทำงานได้:

# Set up socks5 proxy server
ssh sshUser@proxyServer -C -N -g -D \
     proxyServerIp:9999 \
     -o ExitOnForwardFailure=yes \
     -o ServerAliveInterval=60

# Configure dockerd and restart.
# NOTICE: using "all_proxy"
mkdir -p /etc/systemd/system/docker.service.d
cat > /etc/systemd/system/docker.service.d/http-proxy.conf <<EOF
[Service]
Environment="all_proxy=socks5://proxyServerIp:9999"
Environment="NO_PROXY=localhost,127.0.0.1,private.docker.registry.com"
EOF

systemctl daemon-reload
systemctl restart docker

# Test whether can pull images
docker run -it --rm alpine:3.5

3

โซลูชั่นที่สมบูรณ์สำหรับ Windows เพื่อกำหนดค่าการตั้งค่าพร็อกซี

< user>:< password>@< proxy-host>:< proxy-port>

คุณสามารถกำหนดค่าได้โดยตรงโดยคลิกขวาที่การตั้งค่าในไอคอน Docker จากนั้นเลือกพรอกซี

ที่นั่นคุณสามารถกำหนดค่าที่อยู่พร็อกซีพอร์ตชื่อผู้ใช้และรหัสผ่าน

ในรูปแบบนี้:

< user>:< password>@< proxy-host>:< proxy-port>

ตัวอย่าง:

"geronimous:mypassword@192.168.44.55:8080"

ไม่มีอะไรมากไปกว่านี้


2

เพียงแค่ตั้งค่าตัวแปรสภาพแวดล้อมพร็อกซีไม่ได้ช่วยฉันในรุ่น 1.0.1 ... ฉันต้องอัปเดต/etc/default/docker.ioไฟล์ด้วยค่าที่ถูกต้องสำหรับตัวแปร "http_proxy"


2

หากคุณอยู่ใน Ubuntu ให้ใช้คำสั่งเหล่านี้เพื่อเพิ่มพร็อกซีของคุณ

sudo nano /etc/default/docker

และไม่ใส่เครื่องหมายในบรรทัดที่ระบุ

#export http_proxy = http://username:password@10.0.1.150:8050

และแทนที่ด้วยพร็อกซีเซิร์ฟเวอร์และชื่อผู้ใช้ที่เหมาะสม

จากนั้นรีสตาร์ท Docker โดยใช้:

service docker restart

ตอนนี้คุณสามารถเรียกใช้คำสั่งนักเทียบท่าได้หลังพรอกซี:

docker search ubuntu

2

บางทีคุณต้องตั้งค่าตัวแปรตัวพิมพ์เล็ก ในกรณีของฉันไฟล์/etc/systemd/system/docker.service.d/http-proxy.confของฉันจะเป็นดังนี้:

[Service]
Environment="ftp_proxy=http://<user>:<password>@<proxy_ip>:<proxy_port>/"
Environment="http_proxy=http://<user>:<password>@<proxy_ip>:<proxy_port>/"
Environment="https_proxy=http://<user>:<password>@<proxy_ip>:<proxy_port>/"

โชคดี! :)


2

ฉันยังเผชิญปัญหาเดียวกันหลังไฟร์วอลล์ ทำตามขั้นตอนด้านล่าง:

$ sudo vim /etc/systemd/system/docker.service.d/http_proxy.conf
[Service]
Environment="HTTP_PROXY=http://username:password@IP:port/"

อย่าใช้หรือลบไฟล์ https_prxoy.conf

โหลดและรีสตาร์ทคอนเทนเนอร์ Docker ของคุณใหม่:

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
$ docker pull hello-world
Using default tag: latest
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:2557*********************************8
Status: Downloaded newer image for hello-world:latest

1

หากคุณอยู่บน Ubuntu คุณควรใช้คำสั่งนี้:

export https_proxy=http://your_name:password@ip_proxy:port docker 

และโหลด Docker อีกครั้งด้วย:

service docker.io restart

หรือไป/etc/docker.ioกับนาโน ...


1

บน Ubuntu 14.04 (Trusty Tahr) ด้วย Docker 1.9.1 ฉันเพิ่งลบเครื่องหมายhttp_proxyบรรทัดออกแล้วอัปเดตค่าแล้วเริ่มบริการ Docker ใหม่

export http_proxy="http://proxy.server.com:80"

แล้ว

service docker restart

0

ใน RHEL6.6 ใช้งานได้เท่านั้น (สังเกตการใช้งานexport):

/ etc / sysconfig / นักเทียบท่า

export http_proxy="http://myproxy.example.com:8080"
export https_proxy="http://myproxy.example.com:8080"

หมายเหตุ: ทั้งคู่สามารถใช้httpโปรโตคอลได้)

ขอบคุณhttps://crondev.com/running-docker-behind-proxy/


0

ในเครือข่ายของฉัน Ubuntu ทำงานเบื้องหลังพร็อกซีเซิร์ฟเวอร์ ISA ขององค์กร และมันต้องมีการรับรองความถูกต้อง ฉันลองวิธีแก้ปัญหาทั้งหมดที่กล่าวถึงข้างต้นและไม่มีอะไรช่วยเลย สิ่งที่ช่วยได้จริงๆคือเขียนพร็อกซีบรรทัดในไฟล์/etc/systemd/system/docker.service.d/https-proxy.confโดยไม่มีชื่อโดเมน

แทน

Environment="HTTP_PROXY=http://user@domain:password@proxy:8080"

หรือ

Environment="HTTP_PROXY=http://domain\user:password@proxy:8080"

และการทดแทนอื่น ๆ เช่น@ -> %40หรือ\ -> \\ฉันพยายามใช้

Environment="HTTP_PROXY=http://user:password@proxy:8080"

และใช้งานได้ในขณะนี้



0

นี่ไม่ได้ตอบคำถามอย่างแน่นอน แต่อาจช่วยได้โดยเฉพาะถ้าคุณไม่ต้องการจัดการกับไฟล์บริการ

ในกรณีที่คุณเป็นคนหนึ่งเป็นเจ้าภาพภาพวิธีหนึ่งคือการแปลงภาพเป็นที่เก็บ tar แทนการใช้สิ่งที่ต้องการต่อไปที่เซิร์ฟเวอร์

docker save <image-name> --output <archive-name>.tar

เพียงดาวน์โหลดไฟล์เก็บถาวรและเปลี่ยนกลับเป็นรูปภาพ

docker load <archive-name>.tar
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.