根据docker-compose引用,
暴露端口。要么指定两个端口(主机:容器),要么只指定容器端口(将选择一个随机主机端口)。
我的docker-compose.yml
看起来是:
mysql:
image: mysql:5.7
ports:
- "3306"
如果我执行docker-compose ps
,它将看起来像:
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 ps
,它将看起来像:
Name Command State Ports
---------------------------------------------------------------
mysql_1 docker-entrypoint.sh mysqld Up 3306/tcp
在Dockerfile的最新版本中,expose
不再对操作产生任何影响,它只是提供信息。(另见)