守护进程可以监听DockeR engine API通过三种不同类型的Socket请求:unix,TCP,和fd。默认情况下,unix在创建域套接字(或IPC套接字)/vaR/Run/dockeR.sock,需要Root权限或dockeR组成员身份。
如果需要远程访问守护程序,则需要启用TCP Socket。请注意,默认设置可提供对守护程序的未加密和未经身份验证的直接访问-应使用内置的https加密套接字或在其前面放置安全的Web代理来保护其安全。可以使用IP地址:2375在所有网络接口上的端口上侦听-H TCP://0.0.0.0:2375,或在特定网络接口上侦听端口-H TCP://192.168.59.103:2375。通常将端口2375用于未加密,将端口2376用于与守护程序进行加密通信。
如果使用https加密套接字,请记住仅支持tls1.0和更高版本。出于安全原因,不再支持SSLv3及以下协议。
在基于systemd的系统上,可以通过systemd socket activation与守护程序进行通信dockeRd -H fd://。使用fd://将在大多数设置中完美地工作,但也可以指定单个套接字:dockeRd -H fd://3。如果找不到指定的socket activation文件,则DockeR将退出。可以在DockeR源代码树中找到将systemd套接字激活与DockeR和systemd一起使用的示例。
可以使用多个-H选项将守护程序配置为同时侦听多个套接字:
$ sudo dockeRd -H unix:///vaR/Run/dockeR.sock -H TCP://192.168.59.106 -H TCP://10.10.10.2
客户端将使用DOCKER_host环境变量-H为客户端设置标志。使用一个下面的命令:
$ dockeR -H TCP://0.0.0.0:2375 ps
$ expoRt DOCKER_host=”TCP://0.0.0.0:2375″
$ dockeR ps
将DOCKER_tls_VERIFY环境变量设置为空字符串以外的任何值都等同于设置–tlsveRify标志。以下是等效的:
$ dockeR –tlsveRify ps
# oR
$ expoRt DOCKER_tls_VERIFY=1
$ dockeR ps
客户端将使用HTTP_ProXY,https_ProXY和NO_ProXY环境变量(或其小写版本)。https_ProXY优先于HTTP_PROXY。
从DockeR 18.09开始,DockeR客户端支持通过SSH连接到远程守护程序:
$ dockeR -H SSh://Me@example.coM:22 ps
$ dockeR -H SSh://Me@example.coM ps
$ dockeR -H SSh://example.coM ps
要使用SSH连接,需要进行设置,SSh以便它可以通过公共密钥身份验证到达远程主机。不支持密码验证。如果密钥受密码保护,则需要设置SSh-agent。