When setting up docker, there are few images one configures/compose to run on-demand triggered by an external system (like Python scripts for particular actions and similar).
To achieve this Kubernetes has come to the rescue (cron-job) and much more, but then if you want to run docker containers on-prem to get these containers triggered via external systems, docker remote host comes to the rescue.
In this post I would like to share few key commands which were handy to be known for any one try to setup docker host remotely and trigger commands on the same, from their local environment.
The key article I would take reference from would be as follows
Step 1: Generate Certificates on the (Remote) docker Host
docker run --rm --user ContainerAdministrator -e SERVER_NAME=$(hostname) -e IP_ADDRESSES=127.0.0.1,<<Remote Host IP>> -v "c:\programdata\docker:c:\programdata\docker" -v "$env:USERPROFILE\.docker:c:\users\<<user name>>\.docker" stefanscherer/dockertls-windows
Note: Ensure this command switch “–user ContainerAdministrator” is in place else you will recevie few folder access issues
Once the above runs successfully, you will find the following folder in you Docker Host (remote) , with the relevant certificates available for you to copy over to client system
Step 2: Docker Client Configuration
Now once the remote docker host is configured now we move over to out client environment in which we need to download the docker CLI via the following URL (Windows)
The command for setting up CLI are very simple, just unzip the archive to “C:\Program Files\Docker“
Once the binaries are installed on your system and you have added the path to the “PATH” environment variable.
Just then to connect to remote host configure the following
Copy over the cert files to the following location “C:\Users\<<user name>>\.docker” and rename the files which have “server-” key word in them resulting in following
Now configure the following environment variables
|DOCKER_HOST||tcp://<<remote host IP>>:2376|
And thats all done, now if you open you command prompt on your client and run the following commands
docker version docker info
All the resultant output would be driven by the remote docker host, and this allows you to manage remote docker host via client.