Docker 컨테이너를 실행하는 구성 요소를 AWS IoT Greengrass Core 버전 2에 배포하지 못하는 오류를 해결하고 싶습니다.
간략한 설명
Docker 컨테이너를 실행하는 AWS IoT Greengrass 구성 요소가 배포에 실패하는 경우, 일반적으로 권한 문제로 인해 오류가 발생합니다.
다음은 구성 요소 배포 실패에 대한 오류 메시지의 예입니다.
com.example.RaspberryDockerComponent: stderr. unix:///var/run/docker.sock에서 도커 데몬 소켓에 연결하려고 하는 동안 권한이 거부되었습니다. 포스트 "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/load?quiet=1": 다이얼 유닉스 /var/run/docker.sock: 연결: 권한 거부됨. {scriptName=services.com.example.RaspberryDockerComponent.lifecycle.Install.Script, serviceName=com.example.RaspberryDockerComponent, currentState=NEW}
해결 방법
Docker 컨테이너를 실행하는 AWS IoT Greengrass 구성 요소를 성공적으로 배포하려면 다음 권한 중 하나를 변경하세요.
- (모범 사례) 루트 사용자가 아니거나 관리자가 아닌 사용자가 실행하도록 Docker 컨테이너를 구성합니다.
- 구성 요소를 배포하는 사용자에게 루트 또는 관리자 권한을 부여합니다.
사용자에게 권한 거부 오류가 발생하는 경우 관리자가 해당 사용자를 Docker 그룹에 추가해야 합니다. Docker 그룹의 구성원인 사용자는 관리자 권한 없이 명령을 실행할 수 있습니다.
사용자 권한을 추가하려면 다음 단계를 완료하세요.
-
ggc_user를 Docker 그룹에 추가하려면 다음 명령을 실행합니다.
sudo usermod -aG docker ggc_user
참고: 명령에서 ggc_user를 루트가 아닌 사용자로 바꾸세요.
-
AWS IoT Greengrass를 다시 시작하여 사용자 권한 업데이트를 적용하려면 다음 명령을 실행합니다.
systemctl restart greengrass
-
구성 요소를 재배포한 다음 사용자가 명령을 실행할 수 있는지 확인합니다.
관련 정보
Docker 컨테이너 실행