Docker容器中怎么設置網絡代理,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
設置環境變量
設置容器環境變量,這也是最直接的一種方式。啟動容器時,通過設置--env的flag,將環境變量傳入容器。
變量名 | Dockerfile示例 | Docker run示例 |
---|---|---|
HTTP_PROXY | ENV HTTP_PROXY "http://127.0.0.1:3001" | --env HTTP_PROXY="http://127.0.0.1:3001" |
HTTPS_PROXY | ENV HTTPS_PROXY "https://127.0.0.1:3001" | --env HTTPS_PROXY="https://127.0.0.1:3001" |
FTP_PROXY | ENV FTP_PROXY "ftp://127.0.0.1:3001" | --env FTP_PROXY="ftp://127.0.0.1:3001" |
NO_PROXY | ENV NO_PROXY "*.test.example.com,.example2.com" | --env NO_PROXY="*.test.example.com,.example2.com" |
這種方式的優點就是直接,但缺點就是每次啟動容器,都需要顯示的設置,那么編譯一些項目就會遇到麻煩。比如kubevirt項目,會在代碼中啟動容器下載go項目,需要用到代理,那就必須手動找到啟動容器的位置,顯示加上以上的環境變量,增加了很多工作量。為了解決這種情況,在Docker 17.07以上,可以使用配置Docker客戶端的方式。
前置條件:Docker 17.07以上。
在啟動docker用戶的Home目錄,創建~/.docker/config.json
文件,增加http_proxy、https_proxy、ftp_proxy等的設置。當然,也可以同時配置多個代理服務器。
對于不想使用no_proxy的路徑,也可以增加no_proxy的配置,no_proxy的內容用逗號分隔,而且支持通配符*。
示例:
{ "proxies": { "default": { "httpProxy": "http://127.0.0.1:3001", "httpsProxy": "http://127.0.0.1:3001", "noProxy": "*.test.example.com,.example2.com" } } }
啟動容器,即可看到容器內會被自動加入代理。
關于Docker容器中怎么設置網絡代理問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。