fd侠坎,即file?descriptor庄新,文件描述符偿短。
一個(gè) Linux 進(jìn)程啟動(dòng)后,會(huì)在內(nèi)核空間中創(chuàng)建一個(gè) PCB 控制塊凯旋,PCB 內(nèi)部有一個(gè)文件描述符表(File descriptor table)呀潭,記錄著當(dāng)前進(jìn)程所有可用的文件描述符,也即當(dāng)前進(jìn)程所有打開(kāi)的文件至非。
Linux下钠署,所有的操作都是對(duì)文件進(jìn)行操作,而對(duì)文件的操作是利用文件描述符(file?descriptor)來(lái)實(shí)現(xiàn)的荒椭。
每個(gè)文件進(jìn)程控制塊中都有一份文件描述符表(可以把它看成是一個(gè)數(shù)組谐鼎,里面的元素是指向file結(jié)構(gòu)體指針類型),這個(gè)數(shù)組的下標(biāo)就是文件描述符趣惠。在源代碼中狸棍,一般用fd作為文件描述符的標(biāo)識(shí)。
Linux文件描述符到底是什么味悄?
http://c.biancheng.net/view/3066.html
在systemd內(nèi)部運(yùn)行docker時(shí)使用 -H fd://?語(yǔ)法草戈。
Systemd本身將在docker.socket單元文件中創(chuàng)建一個(gè)套接字并進(jìn)行監(jiān)聽(tīng),并且該套接字使用 fd://? docker.service單元文件中的語(yǔ)法連接到docker?守護(hù)程序侍瑟。
當(dāng)您啟動(dòng)Docker守護(hù)程序時(shí)唐片,-H fd://? 將告訴Docker該服務(wù)正在由Systemd啟動(dòng),并將使用套接字激活涨颜,然后费韭,systemd將創(chuàng)建目標(biāo)套接字,并將其傳遞給Docker守護(hù)程序使用咐低。
當(dāng)您使用時(shí)-H fd://揽思,docker將期望套接字通過(guò)其父進(jìn)程傳遞袜腥,而不是自己創(chuàng)建见擦。由Systemd啟動(dòng)時(shí)钉汗,Systemd會(huì)執(zhí)行此工作,但是在終端上手動(dòng)啟動(dòng)時(shí)鲤屡,您不會(huì)執(zhí)行此工作损痰,因此docker守護(hù)進(jìn)程失敗并中止。
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