本节主要配置docker
客户端与守护进程的远程访问。也就是将docker
的守护进程和客户端配置在不同的机器上。
环境准备
需要第二台安装docker
的服务器,修改docker
守护进程的启动选项,在启动项中添加label
选项,用来区分两台服务器,第三在docker
的服务器远程访问中需要保证Client API
与Server API
版本一致。
下述例子并未实操,来源网络:
第一台:
第二台:
可以看到Client API
与Server API
版本都是1.71。上一节已经在第二台服务器上添加了label选项。
在新的服务器上也添加这个选项:
名字设置为docker server 2,重启,查看相关信息:
修改服务器端的配置
docker
守护进程的启动选项-H
用来配置docker
守护进程中服务器使用的socket
,接受3
种形式:
- tcp://host:port
- unix:///path/to/socket,
- fd://* or fd://socketfd
默认docker
的守护进程使用unix
配置
- -H unix:///var/run/docker.sock
修改的方法就是继续往后面添加修改DOCKER_OPTS
的值(使用tcp模式,使用全0的地址就是告诉服务器使用自身的ip
来绑定,通常使用2375
这个端口作为服务的提供端口):
接下来就可以在另一台机子上访问当前服务,在访问之前需要知道这台服务器的ip
地址
之后就可以使用这个ip
地址来访问这个docker
的守护进程。
修改客户端配置
那怎么通过客户端来进行远程访问呢?客户端的命令也支持-H选项,参数形式也一致。
使用客户端的命令参数-H
:
可以看到返回docker server1
的相关信息。如果要频繁地访问远程服务器,使用-H选项会非常地麻烦,docker
客户端也提供了一个环境变量来简化这个操作。
如果指定了docker host
这个环境变量,我们就可以在docker
客户端像连接本机一样使用远程的docker
服务。
需要连接本机时,将环境变量置空即可:
再回到docker server1
的机器上,在这台服务器上将docker
的连接设置为远程模式后运行本机的docker
命令时会提示docker
的守护进程不支持当前的连接:
怎样在设置了远程连接的服务器上也支持本机连接呢?可以采用在这台机器上配置一个环境变量,将地址指定到本机,或者使用tcp
的管道来访问,或者在启动配置文件中参数-H
指定多个参数值