有人可以帮我理解这一点吗,我有一个Dockerfile和dockercompose.yaml
当我做docker-compose up时,我看到tcp与暴露的端口相比有所不同,这是文件
> Dockerfile
FROM msridhara/tomcat
VOLUME /tmp
CMD ["catalina.sh","run"]
EXPOSE 81
>docker-compose.yaml
version: '2'
services:
web:
image: msridtomcat
build: .
container_name: mcontainer
restart: always
volumes:
- /home/murali/website/containerjob/war/:/usr/local/tomcat/webapps/
# - /home/ubuntu/webimage/index.html:/var/www/html/index.html
ports:
- "81:8080"
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2cb36ee8c5ee msridtomcat "catalina.sh run" 58 seconds ago Up 57 seconds 83/tcp, 0.0.0.0:81->8080/tcp mcontainer
请看83 / tcp?它从哪里来?
docker inspect -- results in
"NetworkSettings": {
"Bridge": "",
"SandboxID": "397ab289e556f8ee4b92c47e806a11a1f76d53cb398bdd5701e10e20a3362882",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"8080/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "81"
}
],
"83/tcp": null
},
谢谢
穆拉利
最佳答案
此tcp 83是由于Dockerfile中的Expose 83引起的。刚刚从Dockerfile中删除了Expose,并通过docker-compose yaml暴露了端口。一切都很好
关于docker - Docker TCP与主机端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62001730/