View a markdown version of this page

Docker 컨테이너 AWS IoT Greengrass 의 문제 해결 - AWS IoT Greengrass

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Docker 컨테이너 AWS IoT Greengrass 의 문제 해결

다음 정보를 사용하여 Docker 컨테이너 AWS IoT Greengrass 에서 실행 시 발생하는 문제를 해결하고 Docker 컨테이너 AWS IoT Greengrass 에서의 문제를 디버깅할 수 있습니다.

Docker 컨테이너 실행 문제 해결

다음 정보를 사용하여 Docker 컨테이너 AWS IoT Greengrass 에서 실행과 관련된 문제를 해결할 수 있습니다.

오류: TTY가 아닌 장치에서 대화형 로그인을 수행할 수 없습니다.

aws ecr get-login-password 명령을 실행할 때 이 오류가 발생할 수 있습니다. 최신 AWS CLI 버전 2 또는 버전 1을 설치했는지 확인합니다. AWS CLI 버전 2를 사용하는 것이 좋습니다. 자세한 내용은 AWS Command Line Interface 사용자 가이드에서 AWS CLI설치를 참조하세요.

오류: 알 수 없는 옵션: no-include-email

aws ecr get-login 명령을 실행할 때 이 오류가 발생할 수 있습니다. 최신 AWS CLI 버전이 설치되어 있는지 확인합니다(예: 실행: pip install awscli --upgrade --user). 자세한 내용은 AWS Command Line Interface 사용 설명서의 Microsoft Windows AWS Command Line Interface 에 설치를 참조하세요.

오류: 방화벽이 Windows와 컨테이너 간의 파일 공유를 차단하고 있습니다.

Windows 컴퓨터에서 Docker를 실행할 때 이 오류 또는 Firewall Detected 메시지가 표시될 수 있습니다. 이 오류는 VPN(가상 프라이빗 네트워크)에 로그인되어 있고 네트워크 설정 때문에 공유 드라이브가 탑재되지 않는 경우에도 발생할 수 있습니다. 이러한 경우에는 VPN을 끄고 Docker 컨테이너를 재실행합니다.

오류: GetAuthorizationToken 작업 직접 호출 도중 오류 발생(AccessDeniedException): 사용자: arn:aws:iam::account-id:user/<user-name>에게 다음을 수행할 권한 없음: ecr:GetAuthorizationToken on resource: *

Amazon ECR 리포지토리에 액세스할 충분한 권한이 없는데 aws ecr get-login-password 명령을 실행할 경우 이 오류가 발생할 수 있습니다. 자세한 내용은 Amazon ECR 사용 설명서의 Amazon ECR 리포지토리 정책 예제 및 하나의 Amazon ECR 리포지토리에 액세스를 참조하세요.

오류: 풀 속도 제한에 도달함

Docker Hub는 익명 및 Free Docker Hub 사용자가 수행할 수 있는 풀 요청 수를 제한합니다. 익명 또는 무료 사용자 풀 요청의 속도 제한을 초과하면 다음 오류 중 하나가 발생합니다.

ERROR: toomanyrequests: Too Many Requests.
You have reached your pull rate limit.

이러한 오류를 해결하려면 몇 시간 기다린 다음 다른 풀 요청을 시도할 수 있습니다. 많은 수의 풀 요청을 일관적으로 제출할 계획인 경우 Docker Hub 웹 사이트에서 속도 제한, 그리고 Docker 계정 인증 및 업그레이드 옵션 관련 정보를 참조하세요.

Docker 컨테이너 AWS IoT Greengrass 에서 디버깅

도커 컨테이너로 문제를 디버그하려면 Greengrass 런타임 로그를 유지하거나 대화형 셸을 도커 컨테이너에 연결할 수 있습니다.

Docker 컨테이너 외부에서 Greengrass 로그 유지

AWS IoT Greengrass 컨테이너를 중지한 후 다음 docker cp 명령을 사용하여 Greengrass 로그를 Docker 컨테이너에서 임시 로그 디렉터리로 복사할 수 있습니다.

docker cp container-id:/greengrass/v2/logs /tmp/logs

컨테이너가 종료되거나 제거된 후에도 로그를 유지하려면 /greengrass/v2/logs 디렉터리를 바인드 마운트한 후 AWS IoT Greengrass Docker 컨테이너를 실행해야 합니다.

/greengrass/v2/logs 디렉터리를 바인드 마운트하려면 새 AWS IoT Greengrass Docker 컨테이너를 실행할 때 다음 중 하나를 수행합니다.

  • docker run 명령에 -v /tmp/logs:/greengrass/v2/logs:ro를 포함합니다.

    docker-compose up 명령을 실행하기 전에 다음 줄을 포함하도록 Compose 파일의 volumes 블록을 수정합니다.

    volumes: - /tmp/logs:/greengrass/v2/logs:ro

그런 다음 호스트/tmp/logs의에서 로그를 확인하여 AWS IoT Greengrass 가 Docker 컨테이너 내에서 실행되는 동안 Greengrass 로그를 볼 수 있습니다.

Greengrass Docker 컨테이너 실행에 대한 자세한 내용은 수동 프로비저닝을 사용하여 Docker AWS IoT Greengrass 에서 실행 및 자동 프로비저닝을 사용하여 Docker AWS IoT Greengrass 에서 실행 섹션을 참조하세요.

대화형 쉘을 Docker 컨테이너에 연결

docker exec를 사용하여 Docker 컨테이너 내에서 명령을 실행하면 이 명령이 Docker 로그에 캡처되지 않습니다. Docker 로그에 명령을 로깅하면 Greengrass Docker 컨테이너의 상태를 조사하는 데 도움이 될 수 있습니다. 다음 중 하나를 수행하세요.

  • 별도의 터미널에서 다음 명령을 실행하여 터미널의 표준 입력, 출력 및 오류를 실행 중인 컨테이너에 연결합니다. 이를 통해 현재 터미널에서 Docker 컨테이너를 보고 제어할 수 있습니다.

    docker attach container-id
  • 별도의 터미널에서 다음 명령을 실행합니다. 이렇게 하면 컨테이너가 연결되지 않은 경우에도 대화형 모드에서 명령을 실행할 수 있습니다.

    docker exec -it container-id sh -c "command > /proc/1/fd/1"

일반적인 AWS IoT Greengrass 문제 해결은 섹션을 참조하세요문제 해결 AWS IoT Greengrass V2.