在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,即file descriptor,文件描述符。

Linux下,所有的操作都是对文件进行操作,而对文件的操作是利用文件描述符(file descriptor)来实现的。每个文件进程控制块中都有一份文件描述符表(可以把它看成是一个数组,里面的元素是指向file结构体指针类型),这个数组的下标就是文件描述符。在源代码中,一般用fd作为文件描述符的标识。

 

Linux文件描述符到底是什么?

http://c.biancheng.net/view/3066.html

 

 

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

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐