docker-compose ports vs揭露有什么区别?
在docker-compose.yml文件中,有ports和expose选项。 他们有什么不同? 
根据docker撰写的参考资料 ,
端口被定义为:
公开港口 。 既可以指定两个端口(HOST:CONTAINER),也可以指定容器端口(将select一个随机的主机端口)。
- docker-compose.yml中提到的端口将由docker-compose启动的不同服务共享。
- 端口将暴露给主机到随机端口或给定的端口。
 我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 
公开被定义为:
公开端口而不将它们发布到主机 – 它们只能被链接的服务访问。 只能指定内部端口。
端口不暴露给主机,只暴露于其他服务。
 mysql: image: mysql:5.7 expose: - "3306" 
 如果我做docker-compose up ,它会看起来像: 
  Name Command State Ports --------------------------------------------------------------- mysql_1 docker-entrypoint.sh mysqld Up 3306/tcp