# Run commands on remote Docker host
This is how to connect to another host with your docker client, without modifying your local Docker installation or when you don't have a local Docker installation.
## Enable Docker Remote API
First be sure to enable the Docker Remote API on the remote host.
This can easily be done with a container.
For HTTP connection use [jarkt/docker-remote-api](https://hub.docker.com/r/jarkt/docker-remote-api/).
For HTTPS connection use [whiledo/docker-remote-api-tls](https://hub.docker.com/r/whiledo/docker-remote-api-tls/).
You can also configure the Docker engine to expose the remote API. Read [Enable Docker Remote API with TLS client verification](https://gist.github.com/kekru/974e40bb1cd4b947a53cca5ba4b0bbe5) for more information.
## Download docker client
If you don't have a local Docker installation, you need to download the docker client, which is a simple executable.
You find the docker client for Linux, MacOS and Windows on [download.docker.com](https://download.docker.com/).
Take a file of the `static` directory, e.g. [linux/static/stable/x86_64/docker-17.12.0-ce.tgz](https://download.docker.com/linux/static/stable/x86_64/), and unzip it. You only need the `docker` or `docker.exe` file.
As linux user you can also use this tiny [script](https://gist.github.com/kekru/fd6cd68239d6da87ca1b1a55564c1921) to download it.
## Set alias (for Linux)
For HTTP connection set the following alias:
`alias dockerx="docker -H=your-remote-server.org:2375"`
For HTTPS connection set the following alias:
`alias dockerx="docker --tlsverify -H=your-remote-server.org:2376 --tlscacert=/home/me/docker-tls/ca.pem --tlscert=/home/me/docker-tls/cert.pem --tlskey=/home/me/docker-tls/key.pem"`
## Create .bat file (for Windows)
Create a file "docker.bat".
For HTTP connection the content of the bat file should be:
`docker -H=your-remote-server.org:2375 %*`
For HTTPS connection the content of the bat file should be:
`docker --tlsverify -H=your-remote-server.org:2376 --tlscacert=C:\users\me\docker-tls\ca.pem --tlscert=C:\users\me\docker-tls\cert.pem --tlskey=C:\users\me\docker-tls\key.pem %*`
## HTTPS connection configuration
Docker's Remote API client authentication works with certificates. See [Protect the Docker daemon socket](https://docs.docker.com/engine/security/https/) or my [Enable Docker Remote API with TLS client verification](https://gist.github.com/kekru/974e40bb1cd4b947a53cca5ba4b0bbe5) on how to create server and client certificates.
Copy ca.pem (CA certificate), cert.pem (client certificate) and key.pem (client's private key) in `/home/me/docker-tls/` or `C:\users\me\docker-tls\`.
## Run commands
Now you can run commands on the remote machine with `dockerx` (Linux) or `docker.bat` (Windows) instead of `docker`.
Examples:
`dockerx ps`
`docker.bat ps`