diff --git a/machine/AVAILABLE_DRIVER_PLUGINS.md b/machine/AVAILABLE_DRIVER_PLUGINS.md index 3e870e1038..b4d59b26fb 100644 --- a/machine/AVAILABLE_DRIVER_PLUGINS.md +++ b/machine/AVAILABLE_DRIVER_PLUGINS.md @@ -221,6 +221,18 @@ with Docker Inc. Use 3rd party plugins at your own risk. "mailto:daniel.hiltgen@docker.com">daniel.hiltgen@docker.com + + Linode + + https://github.com/linode/docker-machine-driver-linode + + + Linode + + + developers@linode.com + + NTT Communications Enterprise Cloud diff --git a/machine/drivers/index.md b/machine/drivers/index.md index 6d9bdd41f8..bb0b6a686a 100644 --- a/machine/drivers/index.md +++ b/machine/drivers/index.md @@ -9,7 +9,7 @@ title: Machine drivers - [Digital Ocean](digital-ocean.md) - [Exoscale](exoscale.md) - [Google Compute Engine](gce.md) -- [Generic](generic.md) +- [Linode](linode.md) (unofficial plugin, not supported by Docker) - [Microsoft Hyper-V](hyper-v.md) - [OpenStack](openstack.md) - [Rackspace](rackspace.md) diff --git a/machine/drivers/linode.md b/machine/drivers/linode.md new file mode 100644 index 0000000000..89da6ae403 --- /dev/null +++ b/machine/drivers/linode.md @@ -0,0 +1,61 @@ +--- +description: Linode driver for machine +keywords: machine, Linode, driver +title: Linode +--- + +Create machines on [Linode](https://www.linode.com). + +### Credentials + +You will need a Linode APIv4 Personal Access Token. Get one here: . +Supply the token to `docker-machine create -d linode` with `--linode-token`. + +### Install + +`docker-machine` is required, [see the installation documentation](https://docs.docker.com/machine/install-machine/). + +Then, install the latest release of the Linode machine driver for your environment from the [releases list](https://github.com/linode/docker-machine-driver-linode/releases). + +### Usage + +```bash +docker-machine create -d linode --linode-token= linode +``` + +See the [Linode Docker machine driver project page](https://github.com/linode/docker-machine-driver-linode) for more examples. + +#### Options, Environment Variables, and Defaults + +| Argument | Env | Default | Description +| --- | --- | --- | --- +| `linode-token` | `LINODE_TOKEN` | None | **required** Linode APIv4 Token (see [here](https://developers.linode.com/api/v4#section/Personal-Access-Token)) +| `linode-root-pass` | `LINODE_ROOT_PASSWORD` | *generated* | The Linode Instance `root_pass` (password assigned to the `root` account) +| `linode-authorized-users` | `LINODE_AUTHORIZED_USERS` | None | Linode user accounts (separated by commas) whose Linode SSH keys will be permitted root access to the created node +| `linode-label` | `LINODE_LABEL` | *generated* | The Linode Instance `label`, unless overridden this will match the docker-machine name. This `label` must be unique on the account. +| `linode-region` | `LINODE_REGION` | `us-east` | The Linode Instance `region` (see [here](https://api.linode.com/v4/regions)) +| `linode-instance-type` | `LINODE_INSTANCE_TYPE` | `g6-standard-4` | The Linode Instance `type` (see [here](https://api.linode.com/v4/linode/types)) +| `linode-image` | `LINODE_IMAGE` | `linode/ubuntu18.04` | The Linode Instance `image` which provides the Linux distribution (see [here](https://api.linode.com/v4/images)). +| `linode-ssh-port` | `LINODE_SSH_PORT` | `22` | The port that SSH is running on, needed for Docker Machine to provision the Linode. +| `linode-ssh-user` | `LINODE_SSH_USER` | `root` | The user as which docker-machine should log in to the Linode instance to install Docker. This user must have passwordless sudo. +| `linode-docker-port` | `LINODE_DOCKER_PORT` | `2376` | The TCP port of the Linode that Docker will be listening on +| `linode-swap-size` | `LINODE_SWAP_SIZE` | `512` | The amount of swap space provisioned on the Linode Instance +| `linode-stackscript` | `LINODE_STACKSCRIPT` | None | Specifies the Linode StackScript to use to create the instance, either by numeric ID, or using the form *username*/*label*. +| `linode-stackscript-data` | `LINODE_STACKSCRIPT_DATA` | None | A JSON string specifying data that is passed (via UDF) to the selected StackScript. +| `linode-create-private-ip` | `LINODE_CREATE_PRIVATE_IP` | None | A flag specifying to create private IP for the Linode instance. +| `linode-tags` | `LINODE_TAGS` | None | A comma separated list of tags to apply to the the Linode resource +| `linode-ua-prefix` | `LINODE_UA_PREFIX` | None | Prefix the User-Agent in Linode API calls with some 'product/version' + +#### Notes + +* When using the `linode/containerlinux` `linode-image`, the `linode-ssh-user` will default to `core` +* A `linode-root-pass` will be generated if not provided. This password will not be shown. Rely on `docker-machine ssh` or [Linode's Rescue features](https://www.linode.com/docs/quick-answers/linode-platform/reset-the-root-password-on-your-linode/) to access the node directly. + +#### Debugging + +Detailed run output will be emitted when using the LinodeGo `LINODE_DEBUG=1` option along with the `docker-machine` `--debug` option. + +```bash +LINODE_DEBUG=1 docker-machine --debug create -d linode --linode-token=$LINODE_TOKEN machinename +``` +