도커 컨테이너에서 AWS IoT Greengrass 문제 해결 - AWS IoT Greengrass

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

도커 컨테이너에서 AWS IoT Greengrass 문제 해결

다음 정보를 사용하면 Docker AWS IoT Greengrass 컨테이너에서의 실행 문제를 해결하고 Docker 컨테이너에서의 문제를 디버깅하는 데 도움이 됩니다. AWS IoT Greengrass

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 컨테이너를 재실행합니다.

<user-name>오류: GetAuthorizationToken 작업을 호출하는 동안 오류가 발생했습니다 (AccessDeniedException). 사용자: arn:aws:iam:: account-id:user/가 수행할 권한이 없음: ecr: 리소스: * GetAuthorizationToken

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

오류: 풀 레이트 한도에 도달했습니다.

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

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

이러한 오류를 해결하려면 몇 시간 정도 기다린 후 다른 풀 리퀘스트를 시도할 수 있습니다. 지속적으로 많은 수의 풀 리퀘스트를 제출할 계획이라면 Docker Hub 웹 사이트에서 속도 제한에 대한 정보와 Docker 계정 인증 및 업그레이드 옵션을 참조하십시오.

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

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

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

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

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

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

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

  • 명령에 -v /tmp/logs:/greengrass/v2/logs:ro 포함시키십시오. docker run

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

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

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

Greengrass Docker 컨테이너 실행에 대한 자세한 내용은 및 을 참조하십시오. 수동 프로비저닝으로 AWS IoT Greengrass Docker에서 실행 자동 프로비저닝으로 AWS IoT Greengrass Docker에서 실행

대화형 셸을 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.