<html><body>
<p>Marat Khalili wrote:</p>
<blockquote><p>Occasionally after reboot of the host the /etc/resolv.conf file in some container comes up containing only two comment lines (taken from /etc/resolvconf/resolv.conf.d/head). It should be filled in accordance with dns-nameservers line in /etc/network/interfaces (network configuration is all static), but it doesn't, though IP address is assigned correctly. Any of the following fixes the problem:</p>
<ul><li><p>/etc/init.d/resolvconf reload</p></li>
<li><p>ifdown/ifup</p></li>
<li><p>lxc-stop/lxc-start</p></li>
<li><p>lxc-attach shutdown -r now</p></li></ul>
<p>What's bizzare is there're many containers with similar configuration on this host (actually, most created with the same script), but they usually come up ok, and there's nothing particularly different in successful and unsuccessful syslogs until some service inside (e.g. Apache) realizes it's got no DNS.</p>
<p>Since it is hard to reproduce the problem without rebooting production server, I don't even know where to dig. Probably someone has seen this kind of behaviour before?</p>
<p>It's Ubuntu 16.04 on both host and container: Linux host 4.4.0-79-generic #100-Ubuntu SMP Wed May 17 19:58:14 UTC 2017×86_64 x86_64 x86_64 GNU/Linux</p></blockquote>
<p>There seems to be some ugliness with regeneration of /etc/resolv.conf at boot time.</p>
<p>I've seen some glitches around this process also.</p>
<p>In my case, I run a local copy of dnsmasq + completely disable all the systemd-resolved lunacy, so here's how I deal with this…</p>
<p>Which might be more brute force than what your after + works well.</p>
<p>1) Completely destroy systemd-resolved</p>
<p>systemctl stop systemd-resolved systemctl disable systemd-resolved apt-get purge libnss-resolve</p>
<p>2) Create /etc/dnsmasq-caching.conf</p>
<p>port=53 listen-address=127.0.0.1 listen-address=127.0.0.53</p>
<p>interface=lo bind-interfaces</p>
<p>no-resolv no-hosts</p>
<p># Google server=8.8.8.8 server=8.8.4.4</p>
<p>3) Add to /etc/rc.local</p>
<p>echo “starting” | logger --tag “rc-local: dnsmasq” dnsmasq -C /etc/dnsmasq-caching.conf</p>
<p>4) Create /etc/resolv.conf.override</p>
<p>nameserver 127.0.0.1</p>
<p>5) apt-get install incron</p>
<p>6) echo root > /etc/incron.allow</p>
<p>7) incrontab -e</p>
<p>/run/resolvconf/resolv.conf IN_CLOSE_WRITE,IN_NO_LOOP /bin/cp -f /etc/resolv.conf.override /run/resolvconf/resolv.conf /etc/resolv.conf.override IN_CLOSE_WRITE,IN_NO_LOOP /bin/cp -f /etc/resolv.conf.override /run/resolvconf/resolv.conf</p>
<p>At this point the highly broken systemd-resolved is completely off.</p>
<p>Anytime /run/resolvconf/resolv.conf (resolvconf -u for example) or /etc/resolv.conf.override changes /run/resolvconf/resolv.conf is overwritten using your /etc/resolv.conf.override file, so you always know exactly what's in your resolv.conf file.</p>
<p>Like I said, might be overkill + ensures you know exactly how your resolution is occurring.</p>

<img src="http://links.davidfavor.com/wf/open?upn=dR-2FDpsqbqS0pG-2FvtYnlwlYDAXhLtx9yTSf3jZyR4W4FJm5kgQqvrKRmmJ9iEttydOb-2FzFBn6movyXz2r-2BODhtyBZi49yn13CbqdCbtt13KPGNMJbwffLBFkPVglnGityp1cZ40u2vu3iWkZIv2Xq13grkYutzN1g0uPKXldEr0-2FNWFDunc3aXRshV9MLqjdmUxzqrV0SH0ecwf0KeRrbpg6eIVINAEwXpu-2B35f8RW-2FDETHYNIdTAzt0LRN13gFHJ" alt="" width="1" height="1" border="0" style="height:1px !important;width:1px !important;border-width:0 !important;margin-top:0 !important;margin-bottom:0 !important;margin-right:0 !important;margin-left:0 !important;padding-top:0 !important;padding-bottom:0 !important;padding-right:0 !important;padding-left:0 !important;"/>
</body></html>