docker daemon http_proxy 설정

# 사내 서버에서 aws ECR(elastic Container Registry)에 푸시 하기 위해 
# docker login 을 해야 하는데, 다음과 같이 환경 변수 설정하고
export HTTP_PROXY="http://프록시서버:1111"

# docker login 하면
aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin xxx.ecr.ap-northeast-2.amazonaws.com

# 다음과 같이 docker daemon 에서 타임 아웃이 발생한다.
Error response from daemon: Get https://xxx.ecr.ap-northeast-2.amazonaws.com/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers


# 찾아보니 docker daemon 용 http-proxy.conf 을 사용해야 한다.
# docker daemon http-proxy 파일 생성
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo vi /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://프록시서버:1111"
Environment="HTTPS_PROXY=http://프록시서버:1111"
Environment="NO_PROXY=localhost,127.0.0.1,127.0.0.0/8,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12,.google.com,.naver.com,.daum.net"

# 리로딩 및 재시작
sudo systemctl daemon-reload && sudo systemctl restart docker

# http proxy 설정 확인
sudo systemctl show --property=Environment docker

# 재시작후 sudo 없이 docker 실행하기 위해 docker.sock 소유자 변경
sudo chown -R ysoftman:ysoftman /var/run/docker.sock

# 이제 다시 docker login 하면 성공~
Login Succeeded

comments:

댓글 쓰기