ให้ dnsmasq ทำเพื่อคุณ
กำหนดค่าอินสแตนซ์ dnsmasq ของเครื่องโฮสต์เพื่อค้นหาอินสแตนซ์ dnsmasq ของ lxc สำหรับโดเมนระดับบนสุด. lxc
ใน / etc / default / lxc-net, ไม่ใส่เครื่องหมายข้อคิดเห็นบรรทัดนี้:
LXC_DOMAIN="lxc"
หากอินสแตนซ์ dnsmasq ของโฮสต์ของคุณถูกเปิดใช้งานโดย NetworkManager (เช่นกรณีที่มีการติดตั้ง Ubuntu บนเดสก์ท็อปส่วนใหญ่ในปัจจุบัน) ให้สร้างไฟล์ชื่อ /etc/NetworkManager/dnsmasq.d/lxc.conf ด้วยบรรทัดนี้ภายใน:
server=/lxc/10.0.3.1
หาก dnsmasq โฮสต์ของคุณเปิดตัวโดยอย่างอื่นนอกเหนือจาก NetworkManager ให้เพิ่มบรรทัดนั้นใน /etc/dnsmasq.d-available/lxc แทน:
server=/lxc/10.0.3.1
จากนั้นรีสตาร์ทสิ่งต่าง ๆ เพื่อรับการเปลี่ยนแปลง:
service lxc-net stop
service lxc-net start
service network-manager restart
คุณอาจต้องรีสตาร์ท lxc container หรือทำการร้องขอ DHCP ใหม่ให้เช่าก่อนที่มันจะปรากฏใน DNS (ฉันจำไม่ได้ว่ามันจำเป็นหรือไม่เมื่อฉันทำสิ่งนี้) นอกจากนี้ยังมีมูลค่าการกล่าวถึงว่าฉันเห็นรายงานข้อผิดพลาดเกี่ยวกับ lxc-net ไม่ได้รับการเปลี่ยนแปลง dnsmasq เมื่อรีสตาร์ทดังนั้นคุณอาจต้องการรีบูตระบบโฮสต์ของคุณ เพื่อให้แน่ใจว่า.
จากนั้นลอง:
$ host mycontainer.lxc
mycontainer.lxc has address 10.0.3.21
$ ssh ubuntu@mycontainer.lxc
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-39-generic x86_64)
ubuntu@mycontainer:~$