จะเพิ่ม IP ภายนอกลงในคอนเทนเนอร์ Docker ได้อย่างไร

ฉันได้ศึกษา Docker และตัวเลือกทั้งหมดที่มี และฉันมี VPS พร้อม IP แบบคงที่เพิ่มเติม 3 รายการ

แนวคิดคือการเชื่อมต่อแต่ละคอนเทนเนอร์กับ IP ที่แตกต่างกันหรืออาจเพิ่ม 3 เครือข่ายด้วยคอนเทนเนอร์ที่แตกต่างกันและให้แต่ละเครือข่ายเชื่อมต่อกับ IP ที่แตกต่างกัน เมื่อไม่กี่วันก่อนฉันเห็นบทช่วยสอนบางอย่างในอินเทอร์เน็ต แต่ฉันไม่ได้บันทึกไว้และหาไม่พบอีกต่อไป

IP เป็นแบบคงที่และจัดส่งโดย ISP ของเรา (ovh)

จนถึงตอนนี้ฉันพยายามเชื่อมต่อกับ IP โดยใช้ซับเน็ต xx.xx.xx.xx/32 (เพียง 1 IP) แต่มันทำให้ฉันมีข้อผิดพลาด

ป.ล. ฉันเป็นมือใหม่ที่ Docker

แก้ไข

เพิ่งลองใช้รหัสนี้

docker network create \
  --driver=bridge \
  --subnet=AAA.BBB.CCC.DDD/32 \
  --ip-range=AAA.BBB.CCC.DDD/32 \
  --gateway=AAA.BBB.CCC.DDD \
  br0

และฉันได้รับข้อผิดพลาดปัจจุบัน

Error response from daemon: failed to allocate gateway (AAA.BBB.CCC.DDD): No available addresses on this pool

นอกจากนี้ AAA.BBB.CCC.DDD ยังหมายถึง IP สาธารณะที่มาจาก ISP


person Diogo Jesus    schedule 03.04.2017    source แหล่งที่มา
comment
ฉันเชื่อว่าคุณจะต้องกำหนดที่อยู่ IP เหล่านี้ให้กับเครื่องโฮสต์ จากนั้นส่งต่อพอร์ตด้วย IPtables ฉันไม่แน่ใจทั้งหมดว่าคุณจะผูกที่อยู่ IP กับคอนเทนเนอร์อย่างไรถึงการเชื่อมต่อขาออก   -  person Michael Strobel    schedule 03.04.2017
comment
@rao แต่ตัวเลือกนี้ใช้กับโฮสต์จำนวนมาก (หลายเซิร์ฟเวอร์) ในกรณีนี้ฉันต้องการเชื่อมต่อคอนเทนเนอร์หรือเครือข่ายกับ IP ภายนอกที่ ISP ของฉันให้มา   -  person Diogo Jesus    schedule 03.04.2017


คำตอบ (1)


ที่อยู่ IP แก้ไขได้ในสถานที่หนึ่ง (หากเซิร์ฟเวอร์ DNS ของคุณสามารถแก้ไขได้เลย) ในกรณีนี้ ฉันถือว่าการแก้ไข IP แบบคงที่ไปยังเครื่องเดียวกัน: ลองยืนยันโดยการเรียกใช้

Host xxx.xxx.xxx

หมายเหตุ: ใช้ที่อยู่ ipv4 ดังนั้นไม่ต้องใส่เครื่องหมายทับ หากส่งคืนชื่อโฮสต์เดียวกัน สมมติฐานของฉันถูกต้อง

บนโฮสต์นี้ แต่ละคอนเทนเนอร์จะต้องเปิดเผยพอร์ตและไม่สามารถใช้พอร์ตเดียวกันได้ (หนึ่งพอร์ตต่อแอปพลิเคชัน)

ดังนั้นคุณจะต้องนำทางไปยัง IP ตามด้วยโคลอนและหมายเลขพอร์ต ... หรือคุณสามารถละเว้นพอร์ตและให้เว็บเซิร์ฟเวอร์เช่น apache หรือ nginx ฟังบนพอร์ตเริ่มต้น (80) และกำหนดค่าการกำหนดเส้นทางตาม ตามคำขอที่ได้รับ (จากนั้นคุณกำหนดเส้นทางไปยังพอร์ตที่เปิดเผยทีละพอร์ต แต่วิธีนี้ลูกค้าไม่จำเป็นต้องรู้เกี่ยวกับพอร์ตเหล่านั้น)

หวังว่านี่จะเป็นแนวทางในการตรวจสอบตัวเลือกสำหรับเป้าหมายของคุณ

person Chris Overgaauw    schedule 03.04.2017
comment
ขอบคุณสำหรับคำแนะนำ ฉันจะลองดูพรุ่งนี้เช้าที่ทำงานและฉันจะรายงานข้อเสนอแนะ - person Diogo Jesus; 03.04.2017
comment
คุณช่วยดูหัวข้อหลักของฉันหน่อยได้ไหม? ฉันแก้ไขแล้ว - person Diogo Jesus; 04.04.2017
comment
ฉันไม่มีประสบการณ์กับเครือข่ายนักเทียบท่า อย่างไรก็ตาม เท่าที่ฉันทราบ สิ่งเหล่านี้มีประโยชน์สำหรับการสร้างเครือข่ายท้องถิ่น ในกรณีนี้ คุณกำลังขอสิ่งที่แตกต่างออกไป: เชื่อมต่อแต่ละที่อยู่ IP กับคอนเทนเนอร์นักเทียบท่าอื่น ลองรันคำสั่งโฮสต์ที่ฉันพูดถึงและรายงานผลลัพธ์กลับมาด้วย คุณควรคาดหวังผลลัพธ์ที่คล้ายกับสิ่งนี้: XXX.XXX.XX.XX.in-addr. domain name pointer <HOSTNAME> หากชื่อโฮสต์เหมือนกันสำหรับที่อยู่ IP แต่ละรายการ นั่นหมายความว่าชื่อโฮสต์ได้รับการกำหนดค่าให้แมปกับเครื่องเดียวกันแล้ว ในกรณีนี้: ติดตั้ง nginx หรือ apache ไม่อย่างนั้นเราก็ช่วยท่านไม่ได้ - person Chris Overgaauw; 04.04.2017