Proxy를 통해 외부 인터넷을 사용하는 환경에서 Rancher Desktop을 설치하여 사용하면서 외부 컨테이너 이미지 저장소를 사용하는 경우, 이미지 Pull 이 되지 않는 문제가 발생.
Rancher Desktop Dashboard 에서 Pull 을 하면 I/O Timeout 발생.
WSL을 통해 직접 접속하여 Pull을 하더라고 아래와 같은 에러 메시지가 나옴.
FATA[0032] failed to copy: httpReadSeeker: failed open: failed to do request: Get
wsl을 통해 rancher-desktop 접속, vi 로 아래 파일에 내용 추가
(WSL2 Rancher Desktop)
#...
HTTP_PROXY="http://[[PROXY_IP]]:[[PROXY_PORT]]"
HTTPS_PROXY="http://[[PROXY_IP]]:[[PROXY_PORT]]"
NO_PROXY="localhost,127.0.0.1"
export HTTP_PROXY
export HTTPS_PROXY
export NO_PROXY
#...
(WSL2 Rancher Desktop)
# ...
[Service]
Environment="HTTP_PROXY=[[PROXY_IP]]:[[PROXY_PORT]]"
Environment="HTTPS_PROXY=[[PROXY_IP]]:[[PROXY_PORT]]"
완료 후, 아래 스크립트 실행
(WSL2 Rancher Desktop)
if ! grep -q "^rc_env_allow" /etc/rc.conf; then
echo "rc_env_allow=\"*\"" >> /etc/rc.conf
fi
(+추가내용) /etc/environment 해당 파일을 생성하고,
아래 값을 넣으면 대부분 Application 에서 사용한다고 한다.
(WSL2 Rancher Desktop)
HTTP_PROXY="http://[[PROXY_IP]]:[[PROXY_PORT]]"
HTTPS_PROXY="http://[[PROXY_IP]]:[[PROXY_PORT]]"
NO_PROXY="localhost,127.0.0.1"
export HTTP_PROXY
export HTTPS_PROXY
export NO_PROXY
또, 아래 내용을 Windows PowerShell 에서 실행
(PowerShell)
setx HTTP_PROXY http://[[PROXY_IP]]:[[PROXY_PORT]]
setx HTTPS_PROXY https://[[PROXY_IP]]:[[PROXY_PORT]]
setx WSLENV HTTP_PROXY:HTTPS_PROXY
적용 확인
(PowerShell)
wsl -d rancher-desktop echo ${HTTP_PROXY}
wsl -d rancher-desktop echo ${HTTPS_PROXY}
Rancher Desktop 재 실행 후 확인
(PowerShell)
# containerd 인 경우
nerdctl pull hello-world
# docker 인 경우
docker pull hello-world
한번에
HTTP_PROXY=""
HTTPS_PROXY=""
NO_PROXY="127.0.0.1,localhost"
echo "
HTTP_PROXY=${HTTP_PROXY}
HTTPS_PROXY=${HTTPS_PROXY}
NO_PROXY=${NO_PROXY}
export HTTP_PROXY
export HTTPS_PROXY
export NO_PROXY
" | tee -a /etc/conf.d/containerd \
| tee -a /etc/environment
echo "
[Service]
Environment=\"HTTP_PROXY=${HTTP_PROXY}\"
Environment=\"HTTPS_PROXY=${HTTPS_PROXY}\"
" | tee -a /etc/containerd/config.toml
if [ -f /etc/redhat-release ]; then
echo "
proxy=${HTTP_PROXY}
" | tee -a /etc/yum.conf
fi
if [ -f /etc/lsb-release ]; then
echo "
Acquire {
HTTP::proxy \"${HTTP_PROXY}\";
HTTPS::proxy \"${HTTPS_PROXY}\";
}
" | tee /etc/apt/apt.conf.d/proxy.conf
fi