启动随机主机端口的Docker容器,并返回端口以在其他地方使用它

我想开始一个docker集装箱,让我们说jenkins作为一项服务,并让docker分配一个随机的主机端口。 我知道如何做到这一点。

我如何从运行的容器中抓取随机select的端口,或者告诉docker将其返回,以便在构buildjenkins github插件url时使用它

http://host-ip:random-host-port/web-hook 

一旦docker运行-P完成,容器正在运行, EXPOSE(d)端口映射到主机上的高端口号 。

要获取正在运行的容器的任何信息,请使用docker inspect

如果你知道容器的内部端口号(这是后来映射),你可以键入( 从这个评论 ):

  docker inspect --format '{{ (index (index .NetworkSettings.Ports "8080/tcp") 0).HostPort }}' <Container-Name/ID> 

Jenkins官方图片使用的是EXPOSE 8080