Docker默认守护进程Unix socket(/var/run/docker.sock)来进行本地进程通信,不监听任何端口,因此只能在本地使用docker客户端或者使用Docker API进行操作。如果想在其他主机上操作Docker主机,就需要让Docker守护进程打开一个HTTP Socket,这样才能实现远程通信。实现方式如下:
$ vi /usr/lib/systemd/system/docker.service
ExecStart=-H tcp://0.0.0.0:2376 -H unix://var/run/docker.sock
$ systemctl daemon-reload
$ systemctl restart docker
此时使用如下命令可验证是否开启远程访问:
$ curl docker_host_ip:2376/version
{"Version":"17.03.0-ce","ApiVersion":"1.26","MinAPIVersion":"1.12","GitCommit":"60ccb22","GoVersion":"go1.7.5","Os":"linux","Arch":"amd64","KernelVersion":"3.10.0-693.5.2.el7.x86_64","BuildTime":"2017-02-23T10:54:03.848297239+00:00"}
# docker_host_ip:为要访问的docker所在的主机ip