In order for me to be able to flexibly change the exposed port, I tried to create a container with exposed port 80 on local with a fixed ip address.
And have a dstnat rule to point an external request to the local container
DNAT tcp – anywhere WANIP tcp dpt:26080 to:220.127.116.11:80
(18.104.22.168 is the ip of the container)
The expose in Dockerfile seems to be working
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f3b3c29498c0 expressjs/node:lts “/home/shell.sh” 10 minutes ago Up 10 minutes 80/tcp express
But I seems not to be able to access it from outside even when I have the same masquerade rule as the docker0 network.
What other rules do I need to add for the translate to work?