下面是示例代码:
services:
db:
image: "mysql:8"
restart: always
environment:
MYSQL_DATABASE: 'test'
MYSQL_USER: 'root'
MYSQL_PASSWORD: 'test'
MYSQL_ROOT_PASSWORD: 'test'
ports:
- "3309:3306"
expose:
- "3309"
根据定义,在docker-compose文件中,expose:
在主机端口或容器端口上是否起作用?
ports:
是否遵循[host_port]:[container_port]
约定或[container_port]:[host_port]
?
上面的示例代码到底对端口做了什么?
答案 0 :(得分:1)
EXPOSE仅用于文档目的,而不是实际发布任何端口。可以将其视为元数据,从而允许其他开发人员或管理员在映像上拥有某种文档。
发布端口时,是在该容器的本地主机或主机上进行的。
例如,如果您在主机上运行redis容器并发布6379,则localhost:6379将映射到容器的6379端口。
约定是:host-port:container-port