2016-11-25 60 views

回答

132

按照docker-compose reference

Ports定義爲:

暴露端口。既可以指定兩個端口(HOST:CONTAINER),也可以指定容器端口(將選擇一個隨機主機端口)。在泊塢窗,compose.yml提到

  • 端口將被搬運工,開始撰寫不同的服務之間共享。
  • 端口將暴露在主機上的隨機端口或給定端口。

docker-compose.yml看起來像

mysql: 
    image: mysql:5.7 
    ports: 
    - "3306" 

如果我做docker-compose up,它看起來像:

$ docker-compose ps                      10:27:28 
    Name      Command    State   Ports 
------------------------------------------------------------------------------------- 
    mysql_1  docker-entrypoint.sh mysqld  Up  0.0.0.0:32769->3306/tcp 

Expose被定義爲:

揭露端口,而不會予以公佈到主機 - 他們只能訪問能夠鏈接到服務。只能指定內部端口。

端口不會暴露給主機,只暴露給其他服務。

mysql: 
    image: mysql:5.7 
    expose: 
    - "3306" 

如果我做docker-compose up,它看起來像:

Name     Command    State Ports 
--------------------------------------------------------------- 
mysql_1  docker-entrypoint.sh mysqld Up  3306/tcp 
+19

你問一個問題,在你給你自己的答案在同一分鐘..? – lvthillo

+55

@ lorenzvth7事實證明我在添加我的問題時找到了答案,並且Stackoverflow允許您同時回答。在底部你看到[]回答你自己的問題 - 分享你的知識,問答風格:-) – bibstha

+4

方式來打擾你自己的聲望得分我猜 – Ivan

相關問題