Interface to 'Container Instances', 'Docker Registry' and 'Kubernetes' in 'Azure'

An interface to container functionality in Microsoft's 'Azure' cloud: <>. Manage 'Azure Container Instance' (ACI), 'Azure Container Registry' (ACR) and 'Azure Kubernetes Service' (AKS) resources, push and pull images, and deploy services. On the client side, lightweight shells to the 'docker', 'docker-compose', 'kubectl' and 'helm' commandline tools are provided. Part of the 'AzureR' family of packages.

CRAN Downloads Travis Build Status

A package for working with Azure Container Registry (ACR), Azure Kubernetes Service (AKS) and Azure Container Instances (ACI). Extends the Azure Resource Manager interface provided by the AzureRMR package.

AzureContainers lets you build and deploy containerised services in R, using Docker and Kubernetes. For full functionality, you should have Docker installed, as well as the kubectl and helm commandline tools. Otherwise it is relatively lightweight, requiring neither Powershell nor Python.

Note that AzureContainers can talk to any Docker registry that uses the V2 HTTP API, not just those created via ACR. Similarly, it can interface with Kubernetes clusters anywhere, not just those created via AKS.

Example workflow

Here is a sample R workflow to package up an R model as a container, deploy it to a Kubernetes cluster, and expose it as a service.

# login to Azure ---
az <- AzureRMR::az_rm$new("<tenant_id>", "<app_id>", "<secret>")
resgroup <- az$
    create_resource_group("myresgroup", location="australiaeast")
# create container registry ---
acr <- resgroup$create_acr("myacr", location="australiaeast")
# create Docker image from a predefined Dockerfile ---
call_docker("build -t newcontainer .")
# get registry endpoint, upload image ---
reg <- acr$get_docker_registry()
# create Kubernetes cluster with 2 nodes ---
aks <- resgroup$create_aks("myakscluster",
    agent_pools=aks_pools("pool1", 2, "Standard_DS2_v2", "Linux"))
# get cluster endpoint, deploy from ACR to AKS with predefined yaml definition file ---
clus <- aks$get_cluster()
clus$create_registry_secret(reg, email="[email protected]")

cloudyr project logo


AzureContainers 1.0.1

  • Change aks$get_cluster() method to use a non-deprecated API call.
  • Allow resource group and subscription accessor methods to work even if AzureContainers is not on the search path.
  • Allow for different AAD token implementations, either from httr or AzureAuth.

AzureContainers 1.0.0

  • Submitted to CRAN

AzureContainers 0.9.0

  • Moved to cloudyr organisation

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


1.3.2 by Hong Ooi, 7 months ago

Report a bug at

Browse source code at

Authors: Hong Ooi [aut, cre] , Bill Liang [ctb] (Assistance debugging MMLS on Kubernetes) , Ramkumar Chandrasekaran [ctb] (Original blog article on Dockerising MMLS) , Microsoft [cph]

Documentation:   PDF Manual  

Task views: Web Technologies and Services

MIT + file LICENSE license

Imports utils, AzureRMR, AzureGraph, openssl, httr, R6, processx

Suggests knitr, rmarkdown, testthat, uuid, MASS, bcrypt, randomForest, plumber, RestRserve, AzureKeyVault

See at CRAN