1. 程式人生 > 其它 >雲端計算_Dockerfile與代理

雲端計算_Dockerfile與代理

本地環境

console中執行
 使用代理執行:
 export http_proxy=http://127.0.0.1:80
 export https_proxy=http://127.0.0.1:80
 取消代理執行:
 export -n http_proxy
 export -n https_proxy
(針對當前視窗生效)

01.Dockerfile檔案中使用本地代理(訪問宿主機)

ENV http_proxy http://127.0.0.1:3001
ENV https_proxy https://127.0.0.1:3001

gpg: keyserver receive failed: Connection timed out	  
The command '/bin/sh -c apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys654' 
returned a non-zero code: 2

gpg和apt-key 代理的情況
 gpg和apt-key使不會直接讀取終端中設定的代理,需要單獨設定
 gpg --keyserver-options http-proxy=test.com:8080/" --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys SOMEKEY
 apt-key adv --keyserver-options http-proxy=test.com:8080/" --keyserver hkp://keyserver.ubuntu.com --recv-keys AKEYXXX
 
 Git設定代理
  # 使用代理
  && git config --global http.proxy "http://127.0.0.1:80" \
  && git config --global https.proxy "http://127.0.0.1:80" \
  # 下載
    git clone https://github.com/gperftools/gperftools.git -b gperftools --single-branch \
 #   取消代理
  && git config --global --unset http.proxy \
  && git config --global --unset https.proxy \

02.Docker-run

啟動容器時,通過設定–env的flag,將環境變數傳入容器
 –env HTTP_PROXY="http://127.0.0.1:3001"
 –env HTTPS_PROXY="https://127.0.0.1:3001"

Dockerfile的命令

不同點: 功能不同,執行的時間點不同,作用的有效範圍不同,
 docker中arg和env的區別是:
  arg是在build的時候存在的,可以在Dockerfile中當做變數來使用,臨時使用一下的變數沒必要存環境變數的值就很適合使用 ARG
  而env是容器構建好之後的環境變數,不能在Dockerfile中當引數使用
  
 entrypoint.sh  要具有可執行許可權
 01.相同檔案--執行不了--看是否許可權不一樣
 02.下載檔案--下載不了--看本地是否有許可權
 03.檔案下載到Windows 下,再上傳到unix ,非壓縮檔案會出現 :set ff
  :sef ff=unix

參考

Debian/Ubuntu 對gpg和apt-key使用代理--報錯解決:gpg: keyserver receive failed: Connection timed out https://blog.csdn.net/zhangpeterx/article/details/94870949