Docker 이미지가 Windows / MVC Core에서 느리게 빌드됩니다


9

도커 컨테이너에 여러 프로젝트가있는 MVC Core 2.2가 있습니다. 이미지를 빌드하고 컨테이너를 시작하는 데 약 4 분이 걸립니다. 사용하고 docker-compose있습니다.

이것은 작은 개발이고 괜찮은 컴퓨터를 가지고 있기 때문에 느린 것 같습니다. 이미지 빌드 중에 프로세서가 8 % 미만이고 램이 버지 않고 디스크가 거의 0 %이므로 리소스가 사용되지 않는 것 같습니다. GPU 0 %. Microsoft 이미지가 다운로드되는 동안 인터넷이 몇 초 동안 스파이 킹되는 것을 볼 수 있지만 그게 전부입니다. 도커에 다음 리소스를 제공했습니다.

Cores: 8
RAM: 8GB
SWAP: 3gb
Disk Image Size: 64GB (30.5 GB used)

이러한 하드웨어 리소스를 사용하여 빌드를 더 빠르게 만드는 방법에 대한 아이디어가 있습니까?


Windows 또는 Linux 핵심 기본 이미지를 사용 했습니까?
Thomas Brüggemann

Windows 10 컴퓨터에서 Linux 기반 이미지를 사용하고 있습니다
mgPePe

1
따라서 Linux 컨테이너는 Windows 10에서 기본적으로 실행되지 않으며 Docker for Windows는 특별한 VM을 생성하므로 지연이 발생할 수 있습니다. 실험적인 기능이 있지만 아직 개발 중입니다. github.com/moby/moby/issues/33850
Thomas Brüggemann

답변:


2

웹 에서이 문제에 대해 말하는 몇 가지 스레드를 발견했으며 일반적으로 Docker에 할당 된 하드웨어 리소스와 관련이없는 것으로 보이므로 Windows 10의 Docker에서 일반적인 문제 인 것 같습니다.

따라서 Windows 10 가상 인스턴스에서 일부 시도를 수행했으며 docker-compose 예제를 사용하여 일부 Linux 기반 컨테이너를 실행하는 비슷한 동작을 발견했습니다.

여기에서는 검색 중에 찾은 모든 단계에서 실제로 테스트 중에 작업 속도를 높이는 것으로 보이는 단계를보고합니다.

  1. 다음에 개발 (예 : git repos) 및 도커 이미지 디렉토리를 추가하십시오.

  2. 다음 명령을 실행하여 dns를 비 웁니다.

    ipconfig /flushdns
    
  3. DNS를 Google one (8.8.8.8-8.8.4.4) 또는 Cloud Fare one (1.1.1.1-1.0.0.1)으로 변경하십시오 (여기서는 이미 Google DNS가 있으므로 반대 방향으로 시도했습니다. DNS 속도가 느려지고 실제로 작업 속도가 약간 느려졌습니다)

  4. 다른 바이러스 백신이 설치된 경우 예외를 추가하십시오 (여기서 먼저 바이러스 백신을 비활성화하여 도움이되는지 확인하십시오)

  5. 모든 네트워크 인터페이스에서 모든 IPV6 지원 및 NetBIOS 제거

노트: Docker를 제거하고 적용 후에 설치하라는 조언이 있지만 새로 Windows 10 설치를 시작했기 때문에 테스트하지 않았습니다.

이것들이 당신의 환경에도 도움이되기를 바랍니다!

내가 찾은 최고의 참고 자료 :


1

dcoker가 모든 파일을 데몬으로 전송해야하는 경우, 빌드 디렉토리에 파일이 너무 많은지 확인하십시오. 완료 시간도 필요합니다.

당신은 사용하여 원치 않는 파일을 무시할 수 있습니다 .dockerignore

docker CLI가 컨텍스트를 docker 데몬으로 보내기 전에 컨텍스트의 루트 디렉토리에서 .dockerignore라는 파일을 찾습니다. 이 파일이 존재하면 CLI는 패턴과 일치하는 파일 및 디렉토리를 제외하도록 컨텍스트를 수정합니다. 이는 크고 민감한 파일과 디렉토리를 불필요하게 데몬에 보내고 ADD 또는 COPY를 사용하여 이미지에 추가하는 것을 방지합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.