五、Docker客户端和守护进程

一、Docker -Docker的CS模式

1、下图为Docker官方提供的Docker的CS运行模式的介绍:

在这里插入图片描述
在Docker Client中来运行Docker的各种命令,而这些命令会传送给在Docker的宿主机上运行的Docker的守护进程。而Docker的守护进程是负责来实现Docker的各种功能。

2、Docker的客户端与守护进程的描述

如图所示用户访问docker的流程,用户并不是直接和docker的守护进程交互,而是通过Docker client和docker的守护进程交互。
在这里插入图片描述

3、Remote API

当然啦docker也提供别的方式和docker守护进程进行交互,比如使用remote api,用户可以通过调用restful风格的借口对docker进行操作,如果我们可以看到在docker的官方文档提供了很多供我们使用的api。。也就是说,我们可以通过编写程序,调用这个API,来将我们自己的程序与Docker进行集成。

Docker的Remote在某些复杂的情况下,也支持以下方式进行交互:
STDIN、STDOUT、STDERR
备注:标准输入(STDIN)、标准输出(STDOUT)、标准错误输出(STDERR)

而这个时候我们和docker的守护进程间的通信就变成了这个如下流程:
在这里插入图片描述

4、Docker客户端与守护进程的通信方式

Docker的客户端与守护进程,实际上是通过Socket进行连接的。
在这里插入图片描述

Docker提供了三种进行Socket连接的模式:

  • Unix的端口模式
unix:///var/run/docker.sock
  • TCP协议的host:port模式:
tcp://host:port
  • fd的Socket模式
fd://socketfd

其中,Unix的端口模式是Docker默认的客户端与守护进程的连接方式。我们也可以通过配置进行修改,来使用其它的Socket连接方式。

5、连接演示

1)、检验docker是否启动

ps -ef|grep docker

在这里插入图片描述
或者

systemctl status docker.service

在这里插入图片描述

2)、查看docker版本

docker version

在这里插入图片描述
其中的“server API version”指的就是我们刚刚讲的Remote API的版本。

3)、通过unix:///var/run/docker.sock访问

首先: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

在这里插入图片描述

在这里插入图片描述

二、Docker 守护进程的配置和操作

1.查看docker守护进程的运行状态

systemctl status docker.service
或者
ps -ef|grep docker

在这里插入图片描述

2.docker守护进程的操作

#启动:
systemctl start docker
#查看docker版本
docker version
#查看docker运行状态
systemctl status docker.service
或者
ps -ef|grep docker
#停止
systemctl stop docker
#重启
systemctl restart docker

2.docker启动配置文件

在CentOS7中docker启动配置文件在/usr/lib/systemd/system/下

vim  /usr/lib/systemd/system/docker.service

三、Docker 的远程访问

1、CENTOS7中开放DOCKER远程连接端口

1 配置

  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

2. curl验证

curl http://localhost:2375/version

在这里插入图片描述

3.浏览器验证

http://192.168.153.130:2375/version

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/q908544703/article/details/126114056