ฉันพบว่าชื่อโฮสต์ก็จะมองไม่เห็นภาชนะอื่น ๆ docker run
เมื่อใช้ สิ่งนี้กลายเป็นปัญหาที่ทราบกันดี (อาจจะเป็นที่รู้จักมากกว่า) โดยส่วนหนึ่งของการสนทนาคือ:
เราควรเพิ่มคำเตือนในเอกสารเกี่ยวกับการใช้ชื่อโฮสต์ ผมว่าไม่ค่อยมีประโยชน์
วิธีที่ถูกต้องในการกำหนดชื่อโฮสต์ - ในแง่ของระบบเครือข่ายคอนเทนเนอร์ - คือการกำหนดนามแฝงดังนี้:
services:
some-service:
networks:
some-network:
aliases:
- alias1
- alias2
แต่น่าเสียดายที่นี้ยังคงdocker run
ไม่ได้ทำงานกับ วิธีแก้ปัญหาคือการกำหนดชื่อคอนเทนเนอร์:
docker-compose run --name alias1 some-service
และalias1
จากนั้นจะสามารถส่ง Ping จากภาชนะอื่น ๆ
UPDATE: ดังที่ @grilix ชี้ให้เห็นคุณควรใช้docker-compose run --use-aliases
เพื่อทำให้นามแฝงที่กำหนดพร้อมใช้งาน