一旦涉及到docker,经常会发现有时会需要挂载文件 /var/run/docker.sock
docker是client+server架构,使用命令docker version就可看出
docker由client和server组成,输入docker version命令实,际上是通过客户端将请求发送到docker的守护进程doceker daemon服务上,由docker daemon返回信息,客户端收到信息后展示在控制台上。
相当于一个server,监听来自/var/run/docker.sock的请求,然后做出各种响应
/var/run/docker.sock是什么?什么作用?
/var/run/docker.sock是docker daemon监听的套接字socket(ip+port),容器中的进程可以通过它与docker daemon通信。
挂载/var/run/docker.sock文件是被被映射到了容器内,有以下两个作用:
1.在容器内只要向/var/run/docker.sock发送http请求就能和Docker Daemon通信。
2.如果容器内有docker文件,那么在容器内执行docker ps、docker port这些命令,和在宿主机上执行的效果是一样的,因为它们的请求发往的是同一个docker daemon;