2
ทำไมต้องใช้ EXPOSE ใน Dockerfile - เนื่องจากคุณสามารถผูกเข้ากับพอร์ตทั้งหมดได้
ฉันสามารถทำได้docker run -p 3000:3000 image โดยไม่ต้อง EXPOSEพอร์ตที่อยู่ในภาชนะ (ดูด้านล่าง) หากเป็นจริงแล้วทำไมต้องกังวลกับการวาง EXPOSE ไว้ใน Dockerfile มันเป็นเพียงการสื่อสารกับผู้ใช้ภาพ? เพราะฉันไม่รู้เหตุผลที่ใช้งานได้ของพอร์ต EXPOSE หากพวกมันถูกผูกมัดอยู่ดี นี่คือขั้นตอนที่แสดงการเชื่อมโยงพอร์ตในคอนเทนเนอร์แม้ว่าจะไม่ใช่ EXPOSEd ก็ตาม $ cat Dockerfile FROM alpine RUN apk add nodejs npm vim COPY webserver /webserver CMD [ "node", "/webserver/index.js" ] $ docker build . Sending build context to Docker daemon 1.931MB Step …