mirror of https://github.com/docker/docs.git
381 lines
9.4 KiB
Markdown
381 lines
9.4 KiB
Markdown
{% raw %}
|
|
|
|
# Nodes
|
|
|
|
## Node
|
|
|
|
> Example
|
|
|
|
```json
|
|
{
|
|
"availability_zone": "/api/infra/v1/az/testing-provider/testing-region/testing-az/",
|
|
"cpu": 1,
|
|
"current_num_containers": 4,
|
|
"deployed_datetime": "Tue, 16 Sep 2014 17:01:15 +0000",
|
|
"destroyed_datetime": null,
|
|
"disk": 60,
|
|
"docker_execdriver": "native-0.2",
|
|
"docker_graphdriver": "aufs",
|
|
"docker_version": "1.5.0",
|
|
"external_fqdn": "fc1a5bb9-user.node.dockerapp.io",
|
|
"last_seen": "Thu, 25 Sep 2014 13:14:44 +0000",
|
|
"memory": 1792,
|
|
"nickname": "fc1a5bb9-user.node.dockerapp.io",
|
|
"node_cluster": "/api/infra/v1/nodecluster/d787a4b7-d525-4061-97a0-f423e8f1d229/",
|
|
"node_type": "/api/infra/v1/nodetype/testing-provider/testing-type/",
|
|
"public_ip": "10.45.2.11",
|
|
"region": "/api/infra/v1/region/testing-provider/testing-region/",
|
|
"resource_uri": "/api/infra/v1/node/fc1a5bb9-17f5-4819-b667-8c7cd819e949/",
|
|
"state": "Deployed",
|
|
"tags": [
|
|
{"name": "tag_one"},
|
|
{"name": "tag-two"}
|
|
],
|
|
"tunnel": "https://tunnel01.cloud.docker.com:12345",
|
|
"uuid": "fc1a5bb9-17f5-4819-b667-8c7cd819e949"
|
|
}
|
|
```
|
|
|
|
A node is a virtual machine provided by a cloud provider where containers can be deployed.
|
|
|
|
### Attributes
|
|
|
|
Attribute | Description
|
|
--------- | -----------
|
|
availability_zone | The resource URI of the availability zone where the node is deployed, if any
|
|
uuid | A unique identifier for the node generated automatically on creation
|
|
resource_uri | A unique API endpoint that represents the node
|
|
external_fqdn | An automatically generated FQDN for the node. Containers deployed on this node will inherit this FQDN.
|
|
state | The state of the node. See the below table for a list of possible states.
|
|
node_cluster | The resource URI of the node cluster to which this node belongs to (if applicable)
|
|
node_type | The resource URI of the node type used for the node
|
|
region | The resource URI of the region where the node is deployed
|
|
docker_execdriver | Docker's execution driver used in the node
|
|
docker_graphdriver | Docker's storage driver used in the node
|
|
docker_version | Docker's version used in the node
|
|
cpu | Node number of CPUs
|
|
disk | Node storage size in GB
|
|
memory | Node memory in MB
|
|
current_num_containers | The actual number of containers deployed in this node
|
|
last_seen | Date and time of the last time the node was contacted by Docker Cloud
|
|
public_ip | The public IP allocated to the node
|
|
tunnel | If the node does not accept incoming connections to port 2375, the address of the reverse tunnel to access the docker daemon, or `null` otherwise
|
|
deployed_datetime | The date and time when this node cluster was deployed
|
|
destroyed_datetime | The date and time when this node cluster was terminated (if applicable)
|
|
tags | List of tags to identify the node when deploying services (see [Tags](../../docker-cloud/apps/deploy-tags/) for more information)
|
|
nickname | A user-friendly name for the node (`external_fqdn` by default)
|
|
|
|
|
|
### Node states
|
|
|
|
State | Description
|
|
----- | -----------
|
|
Deploying | The node is being deployed in the cloud provider. No actions allowed in this state.
|
|
Deployed | The node is deployed and provisioned and is ready to deploy containers. Possible actions in this state: `terminate`, `docker-upgrade`.
|
|
Unreachable | The node is deployed but Docker Cloud cannot connect to the docker daemon. Possible actions in this state: `health-check` and `terminate`.
|
|
Upgrading | The node docker daemon is being upgraded. No actions allowed in this state.
|
|
Terminating | The node is being terminated in the cloud provider. No actions allowed in this state.
|
|
Terminated | The node has been terminated and is no longer present in the cloud provider. No actions allowed in this state.
|
|
|
|
### Node Last Metric attributes
|
|
|
|
Attribute | Description
|
|
--------- | -----------
|
|
cpu | CPU percentage usage
|
|
memory | Memory usage in bytes
|
|
disk | Disk storage usage in bytes
|
|
|
|
|
|
## List all nodes
|
|
|
|
```python
|
|
import dockercloud
|
|
|
|
nodes = dockercloud.Node.list()
|
|
```
|
|
|
|
```go
|
|
import "github.com/docker/go-dockercloud/dockercloud"
|
|
|
|
nodeList, err := dockercloud.ListNodes()
|
|
|
|
if err != nil {
|
|
log.Println(err)
|
|
}
|
|
|
|
log.Println(nodeList)
|
|
```
|
|
|
|
```http
|
|
GET /api/infra/v1/node/ HTTP/1.1
|
|
Host: cloud.docker.com
|
|
Authorization: Basic dXNlcm5hbWU6YXBpa2V5
|
|
Accept: application/json
|
|
```
|
|
|
|
```shell
|
|
docker-cloud node ls
|
|
```
|
|
|
|
Lists all current and recently terminated nodes. Returns a list of `Node` objects.
|
|
|
|
### Endpoint Type
|
|
|
|
Available in Docker Cloud's **REST API**
|
|
|
|
### HTTP Request
|
|
|
|
`GET /api/infra/v1/node/`
|
|
|
|
### Query Parameters
|
|
|
|
Parameter | Description
|
|
--------- | -----------
|
|
uuid | Filter by UUID
|
|
state | Filter by state. Possible values: `Deploying`, `Deployed`, `Unreachable`, `Upgrading`, `Terminating`, `Terminated`
|
|
node_cluster | Filter by resource URI of the target node cluster
|
|
node_type | Filter by resource URI of the target node type
|
|
region | Filter by resource URI of the target region
|
|
docker_version | Filter by Docker engine version running in the nodes
|
|
|
|
|
|
|
|
## Get an existing node
|
|
|
|
```python
|
|
import dockercloud
|
|
|
|
node = dockercloud.Node.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
|
|
```
|
|
|
|
```go
|
|
import "github.com/docker/go-dockercloud/dockercloud"
|
|
|
|
node, err := dockercloud.GetNode("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
|
|
|
|
if err != nil {
|
|
log.Println(err)
|
|
}
|
|
|
|
log.Println(node)
|
|
```
|
|
|
|
```http
|
|
GET /api/infra/v1/node/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
|
|
Host: cloud.docker.com
|
|
Authorization: Basic dXNlcm5hbWU6YXBpa2V5
|
|
Accept: application/json
|
|
```
|
|
|
|
```shell
|
|
docker-cloud node inspect 7eaf7fff
|
|
```
|
|
|
|
Get all the details of an specific node
|
|
|
|
### Endpoint Type
|
|
|
|
Available in Docker Cloud's **REST API**
|
|
|
|
### HTTP Request
|
|
|
|
`GET /api/infra/v1/node/(uuid)/`
|
|
|
|
### Path Parameters
|
|
|
|
Parameter | Description
|
|
--------- | -----------
|
|
uuid | The UUID of the node to retrieve
|
|
|
|
|
|
## Update a node
|
|
|
|
```python
|
|
import dockercloud
|
|
|
|
node = dockercloud.Node.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
|
|
node.tags.add(["tag-1"])
|
|
node.save()
|
|
```
|
|
|
|
```go
|
|
import "github.com/docker/go-dockercloud/dockercloud"
|
|
|
|
node, err := dockercloud.GetNode("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
|
|
|
|
if err != nil {
|
|
log.Println(err)
|
|
}
|
|
|
|
if err = node.Update(dockercloud.Node{Tags: []string{{Name: "tag-1"}}}); err != nil {
|
|
log.Println(err)
|
|
}
|
|
```
|
|
|
|
```http
|
|
PATCH /api/infra/v1/node/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
|
|
Host: cloud.docker.com
|
|
Authorization: Basic dXNlcm5hbWU6YXBpa2V5
|
|
Accept: application/json
|
|
|
|
{"tags": [{"name": "tag-1"}], "nickname": "dev node"}
|
|
```
|
|
|
|
```shell
|
|
docker-cloud tag add -t tag-1 7eaf7fff
|
|
docker-cloud tag set -t tag-2 7eaf7fff
|
|
```
|
|
|
|
Names the node with a user-friendly name and/or replaces the old tags for the new list provided.
|
|
|
|
### Endpoint Type
|
|
|
|
Available in Docker Cloud's **REST API**
|
|
|
|
### HTTP Request
|
|
|
|
`PATCH /api/infra/v1/node/(uuid)/`
|
|
|
|
### Path Parameters
|
|
|
|
Parameter | Description
|
|
--------- | -----------
|
|
uuid | The UUID of the node to retrieve
|
|
|
|
### JSON Parameters
|
|
|
|
Parameter | Description
|
|
--------- | -----------
|
|
nickname | (optional) A user-friendly name for the node (`external_fqdn` by default)
|
|
tags | (optional) List of tags the node will have. This operation replaces the user tag list.
|
|
|
|
|
|
## Upgrade Docker Daemon
|
|
|
|
```python
|
|
import dockercloud
|
|
|
|
node = dockercloud.Node.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
|
|
node.upgrade_docker()
|
|
```
|
|
|
|
```go
|
|
import "github.com/docker/go-dockercloud/dockercloud"
|
|
|
|
node, err := dockercloud.GetNode("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
|
|
|
|
if err != nil {
|
|
log.Println(err)
|
|
}
|
|
|
|
if err = node.Upgrade(); err != nil {
|
|
log.Println(err)
|
|
}
|
|
```
|
|
|
|
```http
|
|
POST /api/infra/v1/node/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/docker-upgrade/ HTTP/1.1
|
|
Host: cloud.docker.com
|
|
Authorization: Basic dXNlcm5hbWU6YXBpa2V5
|
|
Accept: application/json
|
|
```
|
|
|
|
```shell
|
|
docker-cloud node upgrade 7eaf7fff
|
|
```
|
|
|
|
Upgrades the docker daemon of the node. This will restart your containers on that node. See [Docker upgrade](../../docker-cloud/infrastructure/docker-upgrade/) for more information.
|
|
|
|
### Endpoint Type
|
|
|
|
Available in Docker Cloud's **REST API**
|
|
|
|
### HTTP Request
|
|
|
|
`POST /api/infra/v1/node/(uuid)/docker-upgrade/`
|
|
|
|
### Path Parameters
|
|
|
|
Parameter | Description
|
|
--------- | -----------
|
|
uuid | The UUID of the node to upgrade
|
|
|
|
|
|
## Perform a health check of a node
|
|
|
|
```http
|
|
POST /api/infra/v1/node/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/health-check/ HTTP/1.1
|
|
Host: cloud.docker.com
|
|
Authorization: Basic dXNlcm5hbWU6YXBpa2V5
|
|
Accept: application/json
|
|
```
|
|
|
|
Tests connectivity between Docker Cloud and the node. Updates the node status to `Deployed` if the check was successful, or to `Unreachable` otherwise.
|
|
|
|
### Endpoint Type
|
|
|
|
Available in Docker Cloud's **REST API**
|
|
|
|
### HTTP Request
|
|
|
|
`POST /api/infra/v1/node/(uuid)/health-check/`
|
|
|
|
### Path Parameters
|
|
|
|
Parameter | Description
|
|
--------- | -----------
|
|
uuid | The UUID of the node to perform the health check to
|
|
|
|
|
|
## Terminate a node
|
|
|
|
```python
|
|
import dockercloud
|
|
|
|
node = dockercloud.Node.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
|
|
node.delete()
|
|
```
|
|
|
|
```http
|
|
DELETE /api/infra/v1/node/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
|
|
Host: cloud.docker.com
|
|
Authorization: Basic dXNlcm5hbWU6YXBpa2V5
|
|
Accept: application/json
|
|
```
|
|
|
|
```go
|
|
import "github.com/docker/go-dockercloud/dockercloud"
|
|
|
|
node, err := dockercloud.GetNode("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
|
|
|
|
if err != nil {
|
|
log.Println(err)
|
|
}
|
|
|
|
if err = node.Terminate(); err != nil {
|
|
log.Println(err)
|
|
}
|
|
```
|
|
|
|
```shell
|
|
docker-cloud node rm 7eaf7fff
|
|
```
|
|
|
|
Terminates the specified node.
|
|
|
|
### Endpoint Type
|
|
|
|
Available in Docker Cloud's **REST API**
|
|
|
|
### HTTP Request
|
|
|
|
`DELETE /api/infra/v1/node/(uuid)/`
|
|
|
|
### Path Parameters
|
|
|
|
Parameter | Description
|
|
--------- | -----------
|
|
uuid | The UUID of the node to terminate
|
|
|
|
{% endraw %}
|