docker运行新的容器 – 所有映射端口的列表?

当运行一个新的容器时,我们指定一个端口RUN_PORT:EXPOSED_PORT来映射主机。 如果已经使用了RUN_PORT这将失败。

所以我的问题是如何列出所有的映射端口 – 这样我们就可以从列表中提取端口号。

PS

我使用的是Ubuntu 16.04

执行以下命令

 sudo netstat -tlnp | grep ":RUN_PORT" 

将RUN_PORTreplace为实际的端口以查看哪个应用程序阻止了它。

列出所有正在使用的tcp端口(用于监听)可以看到:

 netstat -lnt 

查看使用单个端口的内容可以使用netstat和grep来完成,或者如果您安装了lsof:

 sudo lsof -i :80 # shows the process using port 80 

在映射到容器内端口80的随机可用端口上启动泊坞窗容器:

 docker run -p 80 -n container_name your_container 

查看主机上面的命令中使用的随机端口docker(这包括它所连接的IP接口,或所有接口的默认值为0.0.0.0):

 docker port container_name 80