A container is a representation of a Docker container on a host.
| Field | Type | Create | Update | Default | Notes |
|---|---|---|---|---|---|
| build | dockerBuild | Optional | - | - | |
| capAdd | array[enum] | Optional | - | - | |
| capDrop | array[enum] | Optional | - | - | |
| command | array[string] | Optional | - | - | |
| count | int | Optional | - | - | |
| cpuSet | string | Optional | - | - | |
| cpuShares | int | Optional | - | - | |
| dataVolumeMounts | map[volume] | Optional | - | - | |
| dataVolumes | array[string] | Optional | - | - | |
| dataVolumesFrom | array[container] | Optional | - | - | |
| description | string | Optional | Yes | - | |
| devices | array[string] | Optional | - | - | |
| dns | array[string] | Optional | - | - | |
| dnsSearch | array[string] | Optional | - | - | |
| domainName | string | Optional | - | - | |
| entryPoint | array[string] | Optional | - | - | |
| environment | map[string] | Optional | - | - | |
| expose | array[string] | Optional | - | - | |
| extraHosts | array[string] | Optional | - | - | |
| healthCheck | instanceHealthCheck | Optional | - | - | |
| hostname | string | Optional | - | - | |
| imageUuid | string | Optional | - | - | |
| instanceLinks | map[instance] | Optional | - | - | |
| labels | map[string] | Optional | - | - | A map of key value pairs to be used as labels for the container |
| logConfig | logConfig | Optional | - | - | |
| lxcConf | map[string] | Optional | - | - | |
| memory | int | Optional | - | - | |
| memorySwap | int | Optional | - | - | |
| name | string | Optional | Yes | - | |
| networkContainerId | container | Optional | - | - | |
| networkIds | array[network] | Optional | - | - | |
| networkMode | enum | Optional | - | managed | The options are none, bridge, host, managed, container. |
| pidMode | enum | Optional | - | - | The options are host. |
| ports | array[string] | Optional | - | - | |
| privileged | boolean | Optional | - | - | |
| publishAllPorts | boolean | Optional | - | - | |
| readOnly | boolean | Optional | - | - | |
| registryCredentialId | registryCredential | Optional | - | - | |
| requestedHostId | host | Optional | - | - | |
| restartPolicy | restartPolicy | Optional | - | - | |
| securityOpt | array[string] | Optional | - | - | |
| startOnCreate | boolean | Optional | - | true | |
| stdinOpen | boolean | Optional | - | - | |
| tty | boolean | Optional | - | - | |
| user | string | Optional | - | - | |
| volumeDriver | string | Optional | - | - | |
| workingDir | string | Optional | - | - |
| Field | Type | Notes |
|---|---|---|
| createIndex | int | |
| deploymentUnitUuid | string | |
| externalId | string | |
| firstRunning | date | |
| healthState | enum | The options are healthy, unhealthy, updating-healthy, updating-unhealthy, initializing. |
| hostId | host | The unique identifier for the associated host |
| id | int | The unique identifier for the container |
| nativeContainer | boolean | |
| primaryIpAddress | string | |
| startCount | int | |
| systemContainer | enum | The options are NetworkAgent, LoadBalancerAgent. |
| version | string |
Please read more about the common resource fields. These fields are read only and applicable to almost every resource. We have segregated them from the list above.
CreatePOST: /v1/containers
curl -u "${RANCHER_ACCESS_KEY}:${RANCHER_SECRET_KEY}" \
-X POST \
-H 'Content-Type: application/json' \
-d '{
"build": {
"context": "string",
"dockerfile": "string",
"forcerm": false,
"nocache": false,
"remote": "string",
"rm": false
},
"capAdd": "array[enum]",
"capDrop": "array[enum]",
"command": [
"string1",
"...stringN"
],
"count": 0,
"cpuSet": "string",
"cpuShares": 0,
"dataVolumeMounts": "map[reference[volume]]",
"dataVolumes": [
"string1",
"...stringN"
],
"dataVolumesFrom": "array[reference[container]]",
"description": "string",
"devices": [
"string1",
"...stringN"
],
"dns": [
"string1",
"...stringN"
],
"dnsSearch": [
"string1",
"...stringN"
],
"domainName": "string",
"entryPoint": [
"string1",
"...stringN"
],
"environment": {
"key": "value-pairs"
},
"expose": [
"string1",
"...stringN"
],
"extraHosts": [
"string1",
"...stringN"
],
"healthCheck": {
"healthyThreshold": 0,
"initializingTimeout": 0,
"interval": 0,
"name": "string",
"port": 0,
"recreateOnQuorumStrategyConfig": {
"quorum": 0
},
"reinitializingTimeout": 0,
"requestLine": "string",
"responseTimeout": 0,
"strategy": "recreate",
"unhealthyThreshold": 0
},
"hostname": "string",
"imageUuid": "string",
"instanceLinks": "map[reference[instance]]",
"labels": {
"key": "value-pairs"
},
"logConfig": {
"config": {
"key": "value-pairs"
},
"driver": "string"
},
"lxcConf": {
"key": "value-pairs"
},
"memory": 0,
"memorySwap": 0,
"name": "string",
"networkContainerId": "reference[container]",
"networkIds": "array[reference[network]]",
"networkMode": "managed",
"pidMode": "enum",
"ports": [
"string1",
"...stringN"
],
"privileged": false,
"publishAllPorts": false,
"readOnly": false,
"registryCredentialId": "reference[registryCredential]",
"requestedHostId": "reference[host]",
"restartPolicy": {
"maximumRetryCount": 0,
"name": "string"
},
"securityOpt": [
"string1",
"...stringN"
],
"startOnCreate": true,
"stdinOpen": false,
"tty": false,
"user": "string",
"volumeDriver": "string",
"workingDir": "string"
}' 'http://${RANCHER_URL}:8080/v1/containers'
DeleteDELETE: /v1/containers/${ID}
curl -u "${RANCHER_ACCESS_KEY}:${RANCHER_SECRET_KEY}" \
-X DELETE \
'http://${RANCHER_URL}:8080/v1/containers/${ID}'
UpdatePUT: /v1/containers/${ID}
curl -u "${RANCHER_ACCESS_KEY}:${RANCHER_SECRET_KEY}" \
-X PUT \
-H 'Content-Type: application/json' \
-d '{
"description": "string",
"name": "string"
}' 'http://${RANCHER_URL}:8080/v1/containers/${ID}'
console
POST: /v1/containers/${ID}?action=console
Input: InstanceConsoleInput
curl -u "${RANCHER_ACCESS_KEY}:${RANCHER_SECRET_KEY}" \
-X POST \
'http://${RANCHER_URL}:8080/v1/containers/${ID}?action=console'
Output: An updated copy of the instanceConsole resource
execute
POST: /v1/containers/${ID}?action=execute
Input: ContainerExec
| Field | Type | Required | Default | Notes | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| attachStdin | No | true | attachStdout | No | true | command | array[string] | Yes | tty | No | true |
curl -u "${RANCHER_ACCESS_KEY}:${RANCHER_SECRET_KEY}" \
-X POST \
-H 'Content-Type: application/json' \
-d '{
"attachStdin": true,
"attachStdout": true,
"command": [
"string1",
"...stringN"
],
"tty": true
}' 'http://${RANCHER_URL}:8080/v1/containers/${ID}?action=execute'
Output: An updated copy of the hostAccess resource
logs
POST: /v1/containers/${ID}?action=logs
Input: ContainerLogs
| Field | Type | Required | Default | Notes | ||||
|---|---|---|---|---|---|---|---|---|
| follow | No | true | lines | No | 100 |
curl -u "${RANCHER_ACCESS_KEY}:${RANCHER_SECRET_KEY}" \
-X POST \
-H 'Content-Type: application/json' \
-d '{
"follow": true,
"lines": 100
}' 'http://${RANCHER_URL}:8080/v1/containers/${ID}?action=logs'
Output: An updated copy of the hostAccess resource
proxy
POST: /v1/containers/${ID}?action=proxy
Input: ContainerProxy
| Field | Type | Required | Default | Notes | ||||
|---|---|---|---|---|---|---|---|---|
| port | No | 80 | scheme | No | http | The options are http, https. |
curl -u "${RANCHER_ACCESS_KEY}:${RANCHER_SECRET_KEY}" \
-X POST \
-H 'Content-Type: application/json' \
-d '{
"port": 80,
"scheme": "http"
}' 'http://${RANCHER_URL}:8080/v1/containers/${ID}?action=proxy'
Output: An updated copy of the hostAccess resource
restart
POST: /v1/containers/${ID}?action=restart
Input:This action has no inputs
curl -u "${RANCHER_ACCESS_KEY}:${RANCHER_SECRET_KEY}" \
-X POST \
'http://${RANCHER_URL}:8080/v1/containers/${ID}?action=restart'
Output: An updated copy of the instance resource
start
POST: /v1/containers/${ID}?action=start
Input:This action has no inputs
curl -u "${RANCHER_ACCESS_KEY}:${RANCHER_SECRET_KEY}" \
-X POST \
'http://${RANCHER_URL}:8080/v1/containers/${ID}?action=start'
Output: An updated copy of the instance resource
stop
POST: /v1/containers/${ID}?action=stop
Input: InstanceStop
| Field | Type | Required | Default | Notes | ||||
|---|---|---|---|---|---|---|---|---|
| remove | No | timeout | No |
curl -u "${RANCHER_ACCESS_KEY}:${RANCHER_SECRET_KEY}" \
-X POST \
-H 'Content-Type: application/json' \
-d '{
"remove": false,
"timeout": 0
}' 'http://${RANCHER_URL}:8080/v1/containers/${ID}?action=stop'
Output: An updated copy of the instance resource