由于fedora25默認(rèn)使用network manager進(jìn)行網(wǎng)絡(luò)管理帘饶,在無網(wǎng)的情況下(沒接網(wǎng)線、沒連wifi的場(chǎng)景)就不會(huì)創(chuàng)建/etc/resolv.conf文件烟馅,而docker容器的dns解析又依賴于該文件歉备,直接導(dǎo)致了這種情況下docker容器無法啟動(dòng)。
此時(shí)可以在系統(tǒng)的/etc/NetworkManager/dispatcher.d/pre-up.d目錄下創(chuàng)建腳本团驱,在網(wǎng)絡(luò)啟動(dòng)前創(chuàng)建resolv.conf文件,腳本內(nèi)容如下:
#!/bin/sh
touch /var/run/NetworkManager/resolv.conf
touch /etc/resolv.conf
然后將該文件加上可執(zhí)行權(quán)限空凸,保證其可以正常被執(zhí)行嚎花。
此時(shí)可以測(cè)試,在拔掉網(wǎng)線和禁用wifi的情況下重啟系統(tǒng)呀洲,啟動(dòng)后由于/etc/resolv.conf文件已被創(chuàng)建紊选,因此不會(huì)影響docker容器的啟動(dòng)啼止。
本文可能也適用于其他的linux發(fā)行版,但是沒有經(jīng)過測(cè)試兵罢。