首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >返回空闲端口的Bash命令

返回空闲端口的Bash命令
EN

Stack Overflow用户
提问于 2017-02-27 17:40:32
回答 2查看 3.5K关注 0票数 5

作为构建管道的一部分,我想用一个空闲的端口启动容器。

查找类似以下内容的内容:

代码语言:javascript
复制
docker run --name frontend -p $(gimme-a-free-port):80 frontend:latest
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-27 18:08:19

您可以使用端口0。应用程序将0传递给内核,内核将未使用的端口分配给应用程序。

代码语言:javascript
复制
docker run --name frontend -p 0:80 frontend:latest

或者:

代码语言:javascript
复制
docker run --name frontend -p 80 frontend:latest

在第二个例子中,我只是指定了容器端口,主机端口将被自动分配。

要验证:

代码语言:javascript
复制
docker port <containerid or container name>
80/tcp -> 0.0.0.0:32768

仅获取随机端口值:

代码语言:javascript
复制
docker inspect -f '{{ (index (index .NetworkSettings.Ports "80/tcp") 0).HostPort }}' <containerid or container name>
32768
票数 15
EN

Stack Overflow用户

发布于 2017-02-27 18:08:36

如果您没有分配host- port,docker会自动选择一个随机的端口发布容器端口。

例如:

代码语言:javascript
复制
$ docker run --name frontend -p 80 -dit busybox
4439bdce51eee473b1e961664839a410754157bf69da2d2545ab51528a42111c

$ docker port 4439bdce51eee473b1e961664839a410754157bf69da2d2545ab51528a42111c
80/tcp -> 0.0.0.0:32768

(or);

$ docker inspect -f '{{json .NetworkSettings.Ports}}' 4439bdce51eee473b1e961664839a410754157bf69da2d2545ab51528a42111c 
{"80/tcp":[{"HostIp":"0.0.0.0","HostPort":"32768"}]}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42482278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档