2017-07-27 15 views
8

Tôi đang sử dụng Docker cho mac phía sau proxy. Tôi thiết lập cấu hình proxy trong GUI Docker trong "Proxy" -> "Cấu hình proxy thủ công". Điều này cho phép tôi tải xuống hình ảnh Docker từ kho lưu trữ phía sau proxy.Tải Docker cho các biến proxy mac thông qua terminal

Tiếp theo, tôi thiết lập các biến http_proxyhttps_proxy môi trường và tôi sử dụng chúng trong tôi Docker-compose.yml để vượt qua chúng để xây dựng:

services: 
    app: 
    build: 
     context: . 
     args: 
     http_proxy: $http_proxy 
     https_proxy: $https_proxy 

Làm thế nào tôi có thể nhận được các biến mà tôi thiết lập thông qua Docker GUI trong terminal vì vậy tôi không phải đặt chúng hai lần? Có bất kỳ biến môi trường nào của Docker mà tôi có thể sử dụng không?

Trả lời

1

Nếu tôi hiểu đúng muốn mà bạn muốn, sau đó bạn chỉ cần phải đọc những gì do docker info:

❯ docker info | grep Proxy 
Http Proxy: http://localhost:3128 
Https Proxy: http://localhost:3128 

Nếu hai được thiết lập trong GUI, họ sẽ xuất hiện ở gần cuối của đầu ra. Nếu chúng không được thiết lập, chúng sẽ không, và trong trường hợp của tôi, No Proxy: *.local, 169.254/16 sẽ xuất hiện thay thế.

+0

Oh! Điều này có vẻ là chính xác những gì tôi cần! – elclanrs

0

Kiến thức tốt nhất của tôi: điều đó là không thể.

Ý tưởng duy nhất tôi nhận được là sử dụng loại quy tắc iptable (tôi đoán có những thứ tương tự trong mac) chuyển hướng gói ip bên ngoài tới proxy. Nó có nghĩa là docker của bạn được sạch sẽ, bạn chỉ cần kích hoạt/hủy kích hoạt quy tắc nếu bạn đang đứng sau một proxy hay không.

Nó không phải là dễ dàng, nhưng nó là do-thể.

4

Cài đặt proxycap hoặc redsocks và giải phóng bản thân khỏi các lỗi proxy gây phiền nhiễu cho tất cả các công cụ của bạn chứ không chỉ Docker. Proxycap/Redsocks chuyển hướng rõ ràng lưu lượng truy cập đến proxy được chỉ định mà bạn có, do đó bạn không định cấu hình bất kỳ cài đặt proxy nào nữa.

Cập nhật: Có hình ảnh đế cho thẻ đỏ trong trường hợp bạn không thể cài đặt nó trên máy chủ. https://hub.docker.com/r/ncarlier/redsocks/

+0

Tôi có thể làm như vậy, nhưng đây là chương trình đang chạy trong môi trường doanh nghiệp, thông qua VPN và có quyền hạn chế cài đặt ứng dụng. Tất cả những gì tôi có là Docker và Bash. – elclanrs

+0

Tôi chấp nhận câu trả lời này, vì điều này có vẻ như nó sẽ giúp những người khác trong một tình huống tương tự. Tôi đoán trong trường hợp của tôi, tôi không may mắn. Tôi không thể cài đặt bất kỳ ứng dụng bên ngoài nào trong môi trường này thật đáng buồn. Tôi có thể nhận được redsocks hoặc proxycap thông qua quá trình phê duyệt phần mềm. – elclanrs

+0

Tôi nghĩ rằng tôi đã thay đổi quyết định của mình bằng câu trả lời @Metaphox, nhưng tôi nghĩ trường hợp này vẫn hợp lệ đối với hầu hết mọi người nếu họ có thể cài đặt các công cụ như vậy để định cấu hình các proxy proxy của họ. – elclanrs

0

Hoặc xuất chúng hoặc bạn có thể sử dụng phía bên tay phải trong tập lệnh của bạn.

export http_proxy=$(docker info | grep 'Http Proxy' | cut -f2 -d:) 
export https_proxy=$(docker info | grep 'Https Proxy' | cut -f2 -d:) 
Các vấn đề liên quan