fd,即file descriptor,文件描述符。
一个 Linux 进程启动后,会在内核空间中创建一个 PCB 控制块,PCB 内部有一个文件描述符表(File descriptor table),记录着当前进程所有可用的文件描述符,也即当前进程所有打开的文件。
Linux下,所有的操作都是对文件进行操作,而对文件的操作是利用文件描述符(file descriptor)来实现的。
每个文件进程控制块中都有一份文件描述符表(可以把它看成是一个数组,里面的元素是指向file结构体指针类型),这个数组的下标就是文件描述符。在源代码中,一般用fd作为文件描述符的标识。
Linux文件描述符到底是什么?
http://c.biancheng.net/view/3066.html
在systemd内部运行docker时使用 -H fd:// 语法。
Systemd本身将在docker.socket单元文件中创建一个套接字并进行监听,并且该套接字使用 fd:// docker.service单元文件中的语法连接到docker 守护程序。
当您启动Docker守护程序时,-H fd:// 将告诉Docker该服务正在由Systemd启动,并将使用套接字激活,然后,systemd将创建目标套接字,并将其传递给Docker守护程序使用。
当您使用时-H fd://,docker将期望套接字通过其父进程传递,而不是自己创建。由Systemd启动时,Systemd会执行此工作,但是在终端上手动启动时,您不会执行此工作,因此docker守护进程失败并中止。
fd:// 在 "dockerd -H fd://"中到底是什么意思?
http://www.data-master.net/2043303507
What does fd:// mean exactly in dockerd -H fd:// ?
https://www.it1352.com/647824.html
https://stackoverflow.com/questions/43303507/what-does-fd-mean-exactly-in-dockerd-h-fd
Docker daemon socket option
https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-socket-option
moby/contrib/init/systemd
https://github.com/moby/moby/tree/master/contrib/init/systemd