[Docker]當Docker 遇到PROXY

由於現在都習慣把應用程式包成Docker,讓部屬上更容易方便,不過因為一些資安要求,常遇到一些問題.

另如因為資安要求對外就需要走Proxy,但是由於Docker Container會吃到Host的設定,走Proxy,假設不想讓他走該怎麼辦?

以下就列出一些常用的指令與如何讓Continer忽略Proxy:

進入Docker Container環境

#進入container
docker exec -it { container ID } /bin/bash

找出Container中的Proxy設定

#找出Proxy設定 
env |grep PROXY #如果不加入|grep PROXY,就可以看到所有container中的環境變數

如果要設定啟動container時,忽略Proxy

#這裡的設定方式是採用Docker-compose

...略...
environment:
      - NO_PROXY="localhost,127.0.0.1"
...略...

由上可以看到這樣就可以忽略當連線到某些位置就不用經過Proxy,但如果要要設定某個IP區段或是網域該怎麼設定?

#這裡的設定方式是採用Docker-compose 

...略... 
  environment: 
     - NO_PROXY="172.16.0.0/16" #就是172.16.0.1~172.16.0.255區段,採CIDR寫法 
...略...

#or 網域寫法
...略... 
  environment: 
     - NO_PROXY="*.abc.com"
...略...

#同理如要增加哪些區段要透過PROXY可以改為
...略... 
  environment: 
     - HTTP_PROXY="172.16.0.0/16" # http
     - HTTPS_PROXY="172.16.0.0/16" # https
...略...

同場加印,查看Container IP的方式

#進入Container 
hostname -I

 

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *