Azure에서 일정에 따라 단기 Docker 컨테이너를 어떻게 실행합니까?


12

Azure 컨테이너 레지스트리에서 호스팅되는 Alpine Linux Docker 컨테이너에 상당히 간단한 Unix 셸 스크립트가 패키지되어 있습니다. VM은 cron으로이 스크립트를 실행합니다.

docker login <snip>
docker pull example.com/bar:latest
docker run  example.com/bar:latest

VM 없이도 대신 Azure 서비스를 사용할 수 있습니까? 아마도 Azure 컨테이너 인스턴스에서이를 실행하는 일종의 스케줄러가 있습니까?

내 동기는 VM을 유지 관리하고 지불하고 싶지 않습니다.

답변:


10

ACI ( Azure Container Instances )는 제안한대로 좋은 옵션 일 수 있습니다. 이를 통해 VM을 관리 할 필요없이 컨테이너가 사용 된 시간에 대한 초당 청구로 Azure에서 컨테이너를 직접 실행할 수 있습니다.

해당 블로그의 데모 중 하나에 Kubernetes가 언급되어 있지만 ACI의 아이디어는로 az container create로컬 워크 스테이션에서와 마찬가지로 Azure CLI를 통해 컨테이너를 만들 수 있다는 것 입니다 docker create.

컨테이너를 만들려면 Azure CLI ( az명령, 빠른 시작 문서 참조 ) 또는 Azure Cloud Shell을 사용할 수 있습니다.

다른 곳에서 일정에 따라 컨테이너를 만들거나 실행해야합니다. Azure Functions는 예약 된 함수 에서 "container create"명령을 실행하기에 좋은 장소 일 수 있습니다 . 이것은 bash, PowerShell 및 기타 언어를 지원하며 모두 Windows에서 실행됩니다.

VM을 실행하거나 Kubernetes를 배우지 않고 Docker 컨테이너를 계속 사용하려면 이것이 좋은 옵션 일 수 있습니다.

또는 모든 코드를 Azure Functions로 옮길 수 있지만 더 큰 결정입니다.

업데이트 : 2019 년 1 월-Azure Logic Apps 를 사용하여 예약 된 작업을 실행할 수도 있습니다 .


Azure Functions에 PowerShell 또는 Bash를 사용할 수 있다는 것을 몰랐습니다! 감사합니다
Sijmen Mulder

예, Azure Functions에서 모든 실행 파일을 실행할 수 있으며이 개요 문서 에는 bash가 명시 적으로 언급되어 있습니다. PowerShell 모듈을 호출하려면 이 블로그를 참조하십시오 .
RichVel

Azure Functions, AWS Lambda 등의 클라우드 기능을 사용하여 클라우드 서비스를 구성하는 설치 스크립트 (예 : 새 클라우드 환경 설정)를 실행하는 것이 일반적입니다. 따라서 모든 서버리스 서비스 및 프레임 워크에서 bash 또는 유사한 실행을 지원할 수 있습니다. 일반적으로 설정하는 첫 번째 VM은 모든 환경의 모든 설정을 실행할 장소로 사용하는 "제어 호스트"서버였습니다. 이러한 모든 스크립트를 실행하기 위해 서버리스로 전환한다는 것은 지불 할 호스트가 없다는 것을 의미합니다. 해킹 된 경우 제어 서버는 환경 맵, 이전 스크립트 및 캐시 된 암호를 누설합니다. 서버리스 bash가 더 안전합니다.
simbo1905

모든 FaaS (서버리스) 서비스가 bash를 지원하는 것은 아닙니다. 실제로 AWS Lambda는 2018 년 말에 추가 된 기능인 사용자 지정 레이어를 통한 bash 만 지원합니다. 이 오픈 소스 레이어 를 사용하여 bash 실행을 단순화 할 수 있습니다 . 일반적으로 서버리스 / FaaS 서비스는 특정 언어를 지원하며 일부 공급자는이를 확장 할 수있는 방법을 제공합니다 (예 : AWS에는 레이어가 있고 Google에는 모든 Docker 컨테이너를 실행할 수있는 FaaS 서비스가 있습니다).
RichVel

레이어를 사용하지 않으려는 경우 간단하게하기 위해 레이어를 사용하지 않고 bash를 실행하는 Node / Python Lambda를 작성할 수 있습니다 . 예를 들어 lambdash 를 참조하십시오 .
RichVel


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