我不确定我是否误解了这里的某些内容,但似乎只能通过从映像创建新容器来设置端口映射。是否有办法将端口映射分配到现有的Docker容器?
当前回答
不确定是否可以应用端口映射运行的容器。您可以在运行容器时应用端口转发,这与创建新容器不同。
$ docker run -p <public_port>:<private_port> -d <image>
将开始运行容器。本教程解释端口重定向。
其他回答
对于Windows和Mac用户,还有另一种非常简单友好的方法来更改映射端口:
下载kitematic 进入容器的“设置”页面,在“端口”页签中,可以直接在那里修改已发布的端口。 再次启动容器
如果“现有”指的是“正在运行”,那么(目前)不可能添加端口映射。
然而,如果你需要在一个运行的容器中公开一个服务,而不需要停止/重新启动它,你可以动态地添加一个新的网络接口,例如管道。
不确定是否可以应用端口映射运行的容器。您可以在运行容器时应用端口转发,这与创建新容器不同。
$ docker run -p <public_port>:<private_port> -d <image>
将开始运行容器。本教程解释端口重定向。
我的容器有这样的情况:
127.0.0.1:8050->8000
我用一个iptalbes规则解决了这个问题
iptables -t nat -I DOCKER 1 -p tcp --dport ${HOST_PORT} -j DNAT --to-destination ${CONTAINER_IP}:${CONTAINER_PORT}
在本例中,HOST_PORT为8050,CONTAINER_PORT为8000。使用docker inspect命令查找CONTAINER_IP。
要删除iptables规则,使用以下命令:
iptables -t nat -D DOCKER 1
如何将端口映射分配到现有的Docker容器?
这很简单。有两件事,一个是本地服务器端口,如800,8080等在你的机器上,第二个是你的容器端口,你想映射。Docker端口映射
docker run -p 8080:8080 <Image ID>
要获得图像Id,您可以使用
docker ps
推荐文章
- 如何从私有docker注册表中删除图像?
- 创建多个标签码头镜像
- Docker -如何将文件从镜像复制到主机?
- 如何防止docker在系统启动时自动启动容器?
- 什么是Docker映像“层”?
- 无法从docker-compose连接到docker
- Docker错误无法删除Docker容器,冲突:无法删除存储库引用
- 如何让容器在Kubernetes上运行?
- 如何备份docker容器的数据卷?
- Docker入口点运行bash脚本被“拒绝权限”
- 我如何复制Docker作为非根?
- 如何禁用容器上的自动重启?
- 如何传递参数到Dockerfile?
- 如何知道docker是否已经登录到docker注册服务器
- 为什么安装了Docker而没有安装Docker Compose?