Docker 및 프록시 자습서 사용

만약 당신이 회사 네트워크에서 Docker를 실행하려고 시도한 적이 있다면, 당신은 내가 무슨 말을 하는지 알고 있습니다.잠재적인 침입을 방지하기 위해 인프라 엔지니어는 모든 인터넷 데이터가 프록시 서버를 통과하도록 강요하고 때로는 가장 간단한 일도 실행하기 어렵다.

당신은 왜 이 문장을 읽으려고 합니까?


이 강좌를 통해 Docker 엔진과 용기에 프록시를 설정하는 방법에 대한 모든 지식을 얻을 수 있습니다!
  • Docker에서 데스크톱용 프록시 서버 구성
  • Linux 및 Systemd를 사용하여 프록시 서버 구성
  • 컨테이너가 있는 프록시 서버 사용
  • 시작합시다!🚀

    빠른 복습: 프록시 서버는 무엇입니까?


    프록시 서버는 컴퓨터와 인터넷 사이에 있는 서버로 네트워크 외부와 상호작용을 할 수 있습니다.
    프록시를 사용하려는 주요 원인은 다음과 같습니다.
  • 인터넷 컨텐츠 캐시를 통한 네트워크 성능 향상
  • 추가 보안 계층으로서 추가 암호화를 통해 DoS 공격, 블랙리스트 위험 사이트 등을 방지
  • 감사 및 로깅 목적으로 많은 기업에서 미션 크리티컬 시스템에 액세스할 때 누구를 추적해야 함
  • Docker에서 에이전트를 사용하는 방법


    처음에 제가 곤혹스러웠던 것은 Docker 수호 프로세스와 Docker 용기가 같은 프록시 설정을 공유하지 않는다는 것입니다!

    Docker 엔진 설정


    Docker 엔진은 이미지 레지스트리에 액세스하고 컨테이너 이미지를 당기거나 밀기 위해 인터넷에 연결해야 합니다.
    설정이 올바르지 않은 경우 docker login 를 사용하거나 DockerHub에서 이미지를 추출할 때 일반적으로 오류가 발생합니다. 예를 들어, 다음을 참조하십시오.

    Mac/Windows Docker에서 에이전트 설정


    Docker for Desktop을 실행하는 경우 매우 간단한 작업입니다.이 작업은 Docker 설정Docker > Preferences > Resources > Proxies에서 수행할 수 있습니다.다음 변수에 대한 값만 제공하면 됩니다.
  • HTTP_PROXY: HTTP 호출을 처리하는 프록시 서버 노드
  • HTTPS_PROXY: HTTPS 호출을 처리하는 노드(HTTPS 노드가 아닐 수 있음)
  • NO_PROXY: 에이전트 없이 Docker가 액세스할 수 있는 호스트 목록(일반적으로 이 필드
  • 에서 볼 수 있음localhost,127.0.0.1그 다음에 Apply & Restart 단추를 누르면 그림을 밀거나 당길 수 있습니다✅

    인증 사용


    내가 자주 묻는 질문 중 하나는 이 폼에 사용자 이름과 비밀번호 필드가 없으면 어떻게 인증을 제공하는가이다.나는 왜 그들이 설정에 이런 필드를 포함하지 않았는지 모르겠지만, 너는 이렇게 URL 인증을 사용할 수 있다.
    http://<username>:<password>@my.proxy.com:3128/
    

    Systemd를 사용하여 Linux에서 프록시 설정


    Linux 설치를 사용하는 경우 좋은 기본 설정 메뉴에 액세스할 수 없습니다.Linux에서 Docker 엔진은 Systemd를 통해 시스템 서비스로 구성됩니다.
    시스템 관리 기술의 먼지를 닦아내자!👨🏻‍💻
    대부분의 Linux 릴리스에서 Docker는 Systemd가 있는 서비스로 구성됩니다.덮어쓰기 파일을 만들어서 서비스 설정을 변경할 수 있습니다.다음 단계를 따르십시오.
    1) 다음 명령을 사용하여 Docker 서비스 구성을 편집합니다.
    > sudo systemctl edit docker.service
    
    Systemd는 기본 터미널 편집기를 사용하여 파일을 덮어쓰거나 서비스를 엽니다.
    2) 프록시 변수를 포함하도록 서비스 구성을 추가하거나 수정합니다.서비스 파일은 다음과 같습니다.
    [Service]
    Environment=“HTTP_PROXY=http://10.0.1.60:3128”
    Environment=“HTTPS_PROXY=http://10.0.1.60:3128”
    Environment=“NO_PROXY=localhost,127.0.0.1”
    
    3) 파일을 저장하고 닫은 다음
    > sudo systemctl restart docker.service
    

    프록시를 사용하여 컨테이너 실행 설정


    현재 Docker engine에 에이전트를 설정했습니다. Docker가 실행 중인 용기와 이 설정을 영원히 공유하지 않는다는 것을 알아야 합니다!👎🏻
    컨테이너가 인터넷에 액세스하려면 다음과 같은 환경 변수를 사용하여 프록시 설정을 제공해야 합니다.
    > docker run \
        --env http_proxy="http://my.proxy.com:3128" \
        --env https_proxy="http://my.proxy.com:3128" \
        nginx sh -c "curl google.com"
    

    완전한 단계별 강좌


    내 아래의 동영상을 봐라. 진실한 환경에서 내가 문장에서 묘사한 모든 것을 볼 수 있다!
    비디오에서 Docker가 기본적으로 컨테이너에 프록시 구성을 사용하도록 구성하는 방법에 대해서도 설명합니다.이렇게 하면 매번 http_proxyhttps_proxy 변수를 전달할 필요가 없습니다.
    생산성네, 어서 오세요!🚀

    나와 함께 이런 내용을 더 많이 이해하는 것을 잊지 마라!

    좋은 웹페이지 즐겨찾기