mapping - 如果容器已经创建并正在运行,如何使用docker将主机端口分配给容器端口?

标签 mapping port docker linux-containers

我们可以创建一个新容器并在docker run命令中定义您的应用程序端口,例如

sudo docker run -d -p 5000:5000 training/webapp python app.py

要么
sudo docker run -d -P training/webapp python app.py

但是,如果有人忘记在docker run命令中指定-p或-P选项怎么办?创建容器并在本地运行应用程序。现在如何将容器中本地运行应用程序的端口分配给我的Ubuntu主机的端口?
请对此提供帮助。
谢谢。

最佳答案

简短:您不能。您需要停止容器(或不停止容器),并使用适当的参数启动一个新容器。

Docker启动了一个本地代理并为适当的NAT设置了iptables。如果您确实无法启动新容器,则可以手动设置iptables并启动socat。您可以查看Docker代码的网络部分以了解更多信息。

关于mapping - 如果容器已经创建并正在运行,如何使用docker将主机端口分配给容器端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25669027/

相关文章:

ios - 将 API 错误代码映射到 iOS 中的本地化字符串

r - 使用 purrr :map2 to perform regression where the predictor and the criterion are stored in different objects

nhibernate - 关联引用未映射 - 每个子类策略由表映射的对象集合

linux - linux中如何获取进程或端口的网络带宽使用情况

docker - 有什么方法可以使用 cloudbuild.yaml 从 docker hub 中提取图像并部署到云运行

php - TravisCI Docker 权限

docker - GitHub 操作 : Get all job commands to run in a Docker container

python - python中的正则表达式字典

java - 简单的 Java IRC 客户端

sockets - 如何检查打开的端口是 TCP 还是 UDP?