Я использую контейнер Docker с сетевым драйвером MACVLAN, поэтому у контейнера есть IP-адрес в моей сети.Контейнер запускает приложение NodeJS на порту 3001. Я использую следующую команду для запуска контейнера Docker:
docker run --net=vlan1 --ip=172.16.3.14 -p 172.16.3.14:80:3001 --name iptv-staging -t iptv-staging
Контейнер запускается без проблем и доступен в 172.16.3.14.Однако, только когда я просматриваю, используя: 3001.Это не доступно через порт 80 как сопоставлено.docker container ls
не показывает порты для этого контейнера:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2aa1273ad7cd iptv-staging "node app.js" 10 minutes ago Up 10 minutes iptv-staging
Проверка файла Docker, кажется, показывает правильное сопоставление портов:
"PortBindings": {
"3001/tcp": [
{
"HostIp": "172.16.3.14",
"HostPort": "80"
}
]
},
Я также пытался запустить без HostIPопределено:
docker run --net=vlan1 --ip=172.16.3.14 -p 80:3001 --name iptv-staging -t iptv-staging
Но с тем же результатом.Не уверен, куда я иду не так?