เป้าหมายของฉันคือว่า เจนกินส์ ตู้คอนเทนเนอร์จะ "พูดคุย" กับ คำตอบ คอนเทนเนอร์เพื่อสร้าง เจนกินส์ ไฟล์สำหรับ เจนกินส์ ไปป์ไลน์
ฉันคาดหวังว่าคอนเทนเนอร์ทั้งสองจะ "เข้าร่วม" สะพาน เครือข่ายและรับ 2 ที่อยู่ IP ของรหัสเครือข่ายเดียวกัน แต่สร้างเครือข่ายเพิ่มอีก 2 เครือข่ายแทน และแต่ละคอนเทนเนอร์มี IP ของรหัสเครือข่ายต่างกัน
นอกจากนี้คาดว่าคอนเทนเนอร์ทั้งสองจะสามารถเข้าถึงอินเทอร์เน็ตได้
ดังนั้น ใน Windows 10 ของฉัน ฉันใช้ Docker Desktop
ฉันมีไฟล์ docker-compose.yml 2 ไฟล์
หนึ่งสำหรับ เจนกินส์ คอนเทนเนอร์:
รุ่น: '3.7'
บริการ:
เจนกินส์:
ภาพ: jenkins/jenkins:lts
สิทธิพิเศษ: จริง
ผู้ใช้: ราก
พอร์ต:
- 8080:8080
- 50,000:50,000
container_name: เจนกินส์
อีกอย่างสำหรับ คำตอบ คอนเทนเนอร์:
รุ่น: '2'
บริการ:
ใช้งานได้:
container_name: ใช้งานได้
ชื่อโฮสต์: ansible
รูป: ansible
ปริมาณ:
- ~/product/ansible:/ansible
working_dir: /แก้ไขได้
สร้าง:
บริบท: .
นักเทียบท่าไฟล์: Dockerfile
DNS:
- 200.20.200.20
ฉันรันคำสั่งต่อไปนี้สำหรับแต่ละไฟล์ docker-compose.yml ดังนั้นฉันจึงมีสองเครื่องแยกกัน:
นักเทียบท่า-เขียนขึ้น --build
ฉันได้ตรวจสอบรายละเอียดเครือข่ายคอนเทนเนอร์ของฉันและพบว่าแต่ละคอนเทนเนอร์มีรหัสเครือข่ายที่แตกต่างกัน โปรดดูด้านล่าง:
PS > นักเทียบท่าตรวจสอบ -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ansible
172.18.0.2
PS > นักเทียบท่าตรวจสอบ -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' jenkins
172.19.0.2
ตรวจสอบส่วนเครือข่ายนักเทียบท่าของฉันพบว่ามีการสร้างเครือข่ายเพิ่มอีก 2 เครือข่าย สะพาน, เจ้าภาพ และ ไม่มี:
PS > เครือข่ายนักเทียบท่า ls
ขอบเขตไดรเวอร์ชื่อรหัสเครือข่าย
8cefaed24885 ansible_default บริดจ์ในเครื่อง
44bedcd1622dสะพานสะพานท้องถิ่น
61e1c7f7051e โฮสต์โฮสต์โลคัล
b5a7a7a424a4 jenkins_default บริดจ์ในเครื่อง
4e5d6c77cb5a ไม่มีค่าว่างในเครื่อง
แน่นอนการตรวจสอบ สะพาน เครือข่ายแสดงให้เห็นว่า คอนเทนเนอร์ คีย์ว่างเปล่า:
{
"ชื่อ": "สะพาน",
"รหัส": "44bedcd1622d820ce4e29a5cd545f244ba2d303102f1956fe76069a63e7c220e",
"สร้างแล้ว": "2021-08-25T13:13:57.6577149Z",
"ขอบเขต": "ท้องถิ่น",
"คนขับ": "สะพาน",
"เปิดใช้งาน IPv6": เท็จ
"IPAM": {
"ไดรเวอร์": "ค่าเริ่มต้น",
"ตัวเลือก": null,
"การกำหนดค่า": [
{
"เครือข่ายย่อย": "172.17.0.0/16",
"เกตเวย์": "172.17.0.1"
}
]
},
"ภายใน": เท็จ
"แนบได้": เท็จ
"ทางเข้า": เท็จ
"ConfigFrom": {
"เครือข่าย": ""
},
"ConfigOnly": เท็จ
"คอนเทนเนอร์": {},
"ตัวเลือก": {
"com.docker.network.bridge.default_bridge": "จริง",
"com.docker.network.bridge.enable_icc": "จริง",
"com.docker.network.bridge.enable_ip_masquerade": "จริง",
"com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
"com.docker.network.bridge.name": "docker0",
"com.docker.network.driver.mtu": "1500"
},
"ป้ายกำกับ": {},
"CreatedTime": 1629897237657
}
คำถามของฉันคือ:
ก) เหตุใดจึงสร้างเครือข่ายนักเทียบท่าอีกสองเครือข่ายเมื่อฉันวิ่ง นักเทียบท่า-เขียนขึ้น --build
สั่งการ?
ข) ฉันจะทำให้คอนเทนเนอร์เหล่านั้นใช้งานได้อย่างไร สะพาน เครือข่ายและรับ IP ของรหัสเครือข่ายเดียวกัน (รหัสเครือข่ายสะพาน 172.17.x.x) เพื่อที่พวกเขาจะได้พูดคุยกัน?