mirror of https://github.com/docker/compose.git
Adding documentation for single container run and `docker run flags` support in ACI
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
This commit is contained in:
parent
a1a99786b0
commit
e705d4915c
|
@ -0,0 +1,68 @@
|
|||
# Azure Container Instances: running single containerrs
|
||||
|
||||
Single containes can be executed on ACI with the `docker run` command.
|
||||
A single container is executed in its own ACI container group, that will container only one container.
|
||||
|
||||
Containers can be listed with the `docker ps` command, and stopped and removed with `docker stop <CONTAINER>` and `docker rm <CONTAINER>`.
|
||||
|
||||
# Docker run options for ACI containers
|
||||
|
||||
The table below lists supported `docker run` flags and their ACI counterparts.
|
||||
|
||||
__Legend:__
|
||||
|
||||
- __✓:__ Implemented
|
||||
- __n:__ Not yet implemented
|
||||
- __x:__ Not applicable / no available conversion
|
||||
|
||||
| Flag |Map| Notes
|
||||
|-----------------------|---|---------------------------------|
|
||||
| --cpus | ✓ | See [Container Resources](#container-resources)
|
||||
| -d, --detach | ✓ | Detach from container logs when container starts. By default, the command line stays attached and follow container logs
|
||||
| --domainname | ✓ | See [Exposing ports](#exposing-ports)
|
||||
| --e, --env | ✓ | Sets environment variable
|
||||
| --envFile | ✓ | Sets environment variable from and external file
|
||||
| -l, --label | x | Unsupported in Docker ACI integration, due to limitations of ACI Tags
|
||||
| -m, --memory | ✓ | See [Container Resources](#container-resources)
|
||||
| --name | ✓ | provide a name for the container. Name must be unique withing the ACI resource group. a name is generated by default.
|
||||
| -p, --publish | ✓ | See [Exposing ports](#exposing-ports). Only symetrical por mapping is supported in ACI.
|
||||
| --restart | ✓ | Restart policy, must be one of: `any`, `none`, `on-failure`.
|
||||
| --rm | x | Not supported as [ACI does not support auto-delete containers](https://feedback.azure.com/forums/602224-azure-container-instances/suggestions/34066633-support-auto-delete-of-aci-when-container-exits-no)
|
||||
| -v, --volume | ✓ | See [Persistent Volumes](#persistent-volumes)
|
||||
|
||||
## Exposing ports
|
||||
|
||||
You can expose one or several port of a container with `docker run -p <PORT>:<PORT>`
|
||||
If exposing port(s) when running a container, the corresponding ACI container group will be exposed with a public IP allocated and the required port(s) accessible.
|
||||
> Note: [ACI does not support port mapping](https://feedback.azure.com/forums/602224-azure-container-instances/suggestions/34082284-support-for-port-mapping), so the same port number must be specified when using `-p <PORT>:<PORT>`.
|
||||
|
||||
When exposing ports, a container can also specify the service `--domainname` flag to set a DNS hostname. `domainname` will be used to specify the ACI DNS Label Name, and the ACI container group will be reachable at `<domainname>.<region>.azurecontainer.io`.
|
||||
`domainname` must be unique globally in <region>.azurecontainer.io
|
||||
|
||||
## Persistent volumes
|
||||
|
||||
Docker volumes are mapped to Azure File shares, each file share is part of an Azure Storage Account.
|
||||
Volume(s) can be specified with `docker run -v <STORAGE-ACCOUNT>/<FILESHARE>:<TARGET-PATH>`.
|
||||
|
||||
A run command can use the `-- volume`flag several times for different volumes, several volumes can use the same or different storage accounts. Tagret path for different volume mounts must be different and not overlap.
|
||||
There is no support for mounting a single file, or mounting a subfolder from an Azure File Share.
|
||||
|
||||
Credentials for storage accounts will be automatically fetched at deployment time using the Azure login to retrieve the storage account key for each storage account used.
|
||||
|
||||
## Container Resources
|
||||
|
||||
CPU and memory reservations can be set when running containers with `docker run --cpus 1.5 --memory 2G`.
|
||||
|
||||
It is not possible to set resource limits different than resource reservation on single containers.
|
||||
ACI allows setting resource limits for containers in a container group, but these limits must stay within the reserved resources for the entire group. In the case of a single container deployed in a container group, resource limits must be equal to resource reservation.
|
||||
|
||||
## Logs
|
||||
|
||||
You can view container logs with the command:
|
||||
```
|
||||
docker logs <CONTAINER-ID>
|
||||
```
|
||||
|
||||
You can follow logs with the `--follow` (`-f`) option.
|
||||
When running a container with `docker run`, by default the command line stays attached to container logs when the container starts. Use `docker run --detach` to not follow logs once the container starts.
|
||||
> Note: following ACI logs might have display issues especialy when resizing a terminal that is following container logs. This is due to ACI providing raw log pullling but no streaming of logs. Logs are effectively pulled every 2 seconds when following logs.
|
Loading…
Reference in New Issue