ดังนั้นฉันจึงมี 3 พอร์ตที่ควรเปิดเผยกับอินเทอร์เฟซของเครื่อง เป็นไปได้หรือไม่ที่จะทำเช่นนี้กับคอนเทนเนอร์ Docker
ดังนั้นฉันจึงมี 3 พอร์ตที่ควรเปิดเผยกับอินเทอร์เฟซของเครื่อง เป็นไปได้หรือไม่ที่จะทำเช่นนี้กับคอนเทนเนอร์ Docker
คำตอบ:
หากต้องการเปิดเผยเพียงหนึ่งพอร์ตนี่คือสิ่งที่คุณต้องทำ:
docker run -p <host_port>:<container_port>
หากต้องการเปิดเผยหลายพอร์ตเพียงระบุ-pอาร์กิวเมนต์หลายตัว:
docker run -p <host_port1>:<container_port1> -p <host_port2>:<container_port2>
Note: The -p flag can be used multiple times to configure multiple ports.
                    --env-file?
                    publish expose
                    ในของDockerfileคุณคุณสามารถใช้กริยาEXPOSEเพื่อแสดงหลายพอร์ต 
เช่น
EXPOSE 3000 80 443 22
Dockerfileแล้วคุณต้องการที่จะสร้างภาพใหม่บนพื้นฐานดังกล่าวข้างต้น 
เช่น
docker build -t foo:tag .
จากนั้นคุณสามารถใช้-pเพื่อทำแผนที่พอร์ตของโฮสต์ที่มีพอร์ตภาชนะที่กำหนดไว้ในข้างต้นของEXPOSE 
เช่นDockerfile
docker run -p 3001:3000 -p 23:22
ในกรณีที่คุณต้องการแสดงพอร์ตต่อเนื่องหลายช่วงคุณสามารถเรียกใช้ตัวเทียบท่าดังนี้:
docker run -it -p 7100-7120:7100-7120/tcp 
ถ้าคุณใช้docker-compose.ymlไฟล์:
services:
    varnish:
        ports:
            - 80
            - 6081
คุณยังสามารถระบุโฮสต์ / เครือข่ายพอร์ต
varnish:
    ports:
        - 80:80
        - 6081:6081
หากคุณกำลังสร้างคอนเทนเนอร์จากอิมเมจและต้องการแสดงหลายพอร์ต (ไม่เผยแพร่) คุณสามารถใช้คำสั่งต่อไปนี้:
นักสร้างสร้าง - ชื่อ -
container nameรวบรวม 7000 - รวบรวม 7001image name
ตอนนี้เมื่อคุณเริ่มคอนเทนเนอร์นี้โดยใช้docker startคำสั่งพอร์ตที่กำหนดไว้ด้านบนจะถูกเปิดเผย