Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save BluePhoenix/b0389bb644d3a9dc5fe998781e0e1216 to your computer and use it in GitHub Desktop.
Save BluePhoenix/b0389bb644d3a9dc5fe998781e0e1216 to your computer and use it in GitHub Desktop.
Connect to another host with your docker client, without modifying your local Docker installation

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.
For HTTPS connection use 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 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 Install Docker from binaries.
Download it from the "i386"-links to get only the client executable.

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 to create server and client certificates. You can also use this script to create the 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment