赞
踩
在Docker Client中来运行Docker的各种命令,而这些命令会传送给在Docker的宿主机上运行的Docker的守护进程。而Docker的守护进程是负责来实现Docker的各种功能。
如图所示用户访问docker的流程,用户并不是直接和docker的守护进程交互,而是通过Docker client和docker的守护进程交互。
当然啦docker也提供别的方式和docker守护进程进行交互,比如使用remote api,用户可以通过调用restful风格的借口对docker进行操作,如果我们可以看到在docker的官方文档提供了很多供我们使用的api。。也就是说,我们可以通过编写程序,调用这个API,来将我们自己的程序与Docker进行集成。
Docker的Remote在某些复杂的情况下,也支持以下方式进行交互:
STDIN、STDOUT、STDERR
备注:标准输入(STDIN)、标准输出(STDOUT)、标准错误输出(STDERR)
而这个时候我们和docker的守护进程间的通信就变成了这个如下流程:
Docker的客户端与守护进程,实际上是通过Socket进行连接的。
Docker提供了三种进行Socket连接的模式:
unix:///var/run/docker.sock
tcp://host:port
fd://socketfd
其中,Unix的端口模式是Docker默认的客户端与守护进程的连接方式。我们也可以通过配置进行修改,来使用其它的Socket连接方式。
ps -ef|grep docker
或者
systemctl status docker.service
docker version
其中的“server API version”指的就是我们刚刚讲的Remote API的版本。
首先:daemon默认监听/var/run/docker.sock这个文件,docker客户端把请求发往这里,daemon就能收到并做出响应。
其次:看异常信息推测:var/run/docker.sock文件异常,执行systemctl status docker.socket查看其状态
在这里插入代码片
我们需要使用Linux的netcat(nc)的命令,来实现socket的连接:
unix:///var/run/docker.sock
nc -U /var/run/docker.sock
上面我们使用“-U”来指明使用的是socket,Docker使用的socket地址为“/var/run/docker.sock”。回车后,就已经成功连接了socket:
注意:
没有nc命令,使用“yum install -y nc”即可安装。
注意:
发送HTTP请求时输入完get信息后要连按两次回车
nc -U /var/run/docker.sock
systemctl status docker.service
或者
ps -ef|grep docker
#启动:
systemctl start docker
#查看docker版本
docker version
#查看docker运行状态
systemctl status docker.service
或者
ps -ef|grep docker
#停止
systemctl stop docker
#重启
systemctl restart docker
在CentOS7中docker启动配置文件在/usr/lib/systemd/system/下
vim /usr/lib/systemd/system/docker.service
vim /usr/lib/systemd/system/docker.service
找到 ExecStart,在最后面添加
-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
注意: 防火墙
systemctl status firewalld
systemctl stop firewalld
curl http://localhost:2375/version
http://192.168.153.130:2375/version
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。