Configuring and Connecting to Docker DaemonΒΆ
NRPCore offers two possible ways of launching NRPCore related processes in docker containers:
Launching Engine processes in a docker container using DockerLauncher
Launching whole NRPCore experiments in a docker container using the NrpCore Python client
Both use cases require docker daemon to be properly configured in the host where the containerized NRPCore process will be launched. In this guide we review the different possibilities available and give references to more complete guides.
As specified in this guide, by default docker runs through a non-networked UNIX socket. When connecting to the docker daemon from a remote host two options are available:
Connecting to the remote host through SSH
Configuring docker daemon to listen to a TCP port
The first option requires setting up the remote host (where docker daemon is running) to accept SSH connections from the local host (where docker daemon is connected from). Be aware that docker only support public key authentication, password authentication is not supported.
In order to test the setup before launching any experiment try:
docker -H ssh://<user>@<remote host ip> ps
When using NRPCore with docker through SSH there is an additional Python module, paramiko
, which should be installed if it is not already:
pip install paramiko
The second option, configuring docker daemon to listen to a TCP port, should be consider carefully, since it involves potential security risks. In the next pages there is more information on how to configure and secure docker daemon to listen to TCP ports: