Use the Docker Cloud Agent
As well as deploying and managing hosts on the supported cloud providers, Docker Cloud can use any Linux host as a node to deploy containers to. For this, we need you to install our Docker Cloud Agent, which will allow Docker Cloud to remotely manage your host.
Please note that Docker Cloud Agent comes with its own docker binary and will automatically remove any prior installation of the Docker Engine packages when being installed. Please refer to the Known Limitations section below for more information.
Bringing your own node
Go to the Node dashboard and click on Bring your own node.
A command will be generated which includes a unique token tied to your account for node registration. Just execute this command in your Linux host and Docker Cloud Agent will be installed and configured.
If the installation and registration is successful, the web UI will change showing the new node hostname. The node is now ready to accept container deployments!
Using the CLI to bring your own node
You can generate the command needed to install and configure the Docker Cloud Agent by executing:
$ docker-cloud node byo
You will get the command that you have to use to bring your own node, including the token:
Docker Cloud lets you use your own servers as nodes to run containers. For this you have to install our agent.
Run the following command on your server:
curl -Ls https://get.cloud.docker.com/ | sudo -H sh -s 63ad1c63ec5d431a9b31133e37e8a614
Execute this command in your host and it will appear in the list of nodes automatically.
Uninstalling Docker Cloud Agent
To uninstall dockercloud-agent
from your host, execute the following command:
$ apt-get remove dockercloud-agent
Upgrading Docker Cloud Agent
To upgrade dockercloud-agent
execute the following command from your BYON host:
$ apt-get update && apt-get install -y dockercloud-agent
Restarting Docker Cloud Agent
To restart dockercloud-agent
execute the following command from your BYON host:
$ service dockercloud-agent restart
Known limitations
Firewall requisites
The following ports must be opened in any firewalls:
- 6783/tcp and 6783/udp: for the node to join the private overlay network for containers in other nodes.
The following ports are recommended to be opened in any firewalls:
- 2375/tcp: for Docker Cloud to communicate with the Docker daemon running in the node. If port 2375 is not accessible, Docker Cloud will attempt to communicate with node through a secure reverse tunnel.
Of course, you will need to open any ports that you are planning to publish in your services.
Supported Linux distros
Docker Cloud Agent has been tested on:
- Ubuntu 14.04, 15.04, 15.10
- Centos 7
- Debian 8
- Fedora 21, 22, 23
- Red Hat Enterprise Linux 7
We are working to make it available to more platforms soon.
Installing Docker Cloud Agent on a node with Docker already installed
If you install dockercloud-agent
having already installed the native Docker Engine packages, apt-get
will remove them prior to installing dockercloud-agent
. This is due to the fact that dockercloud-agent
comes with the docker
binary already built in. The installation script will also try to install the kernel headers required for AUFS
support.
- If you were already using the
AUFS
storage driver before installingdockercloud-agent
, your existing containers and images will appear automatically after installing it. - If you were using
devicemapper
or any other storage driver, andAUFS
support was successfully installed (you can check this by runningdocker info | grep Storage
), you won’t be able to use your existing containers and images.
Executing docker locally with Docker Cloud Agent installed
Once you install the Docker Cloud Agent, you can still use the docker
command as you would otherwise. For example, running docker ps
will show you a list of containers running.
Please note that there will be containers running from images starting with dockercloud/
which you may not recognize. These are system containers that Docker Cloud runs to offer its service. All of these come from open source repositories available at GitHub.