Docker:使用精确的端口号匹配自动发布端口

我在我的Dockerfile有这个行:

 EXPOSE 80 

当我启动我的docker时,我需要调用docker run -p 80:80 ...

是不是有一个选项来自动发布每个暴露的端口相同的端口号? 我起初以为-P会这样做,但是实际上这个端口是随机select的。

这将比必须设置-p 80:80更方便,如果-p 80:80被configuration为使用这个参数,没有理由使端口号成为docker run的参数!

这不是一个function。

您需要将您的docker运行包装在Tejesh Mehta的 这个脚本中(javascript):

 #!/usr/bin/env node # Usage: docker run [..opts] `publish-static <image>:<tag>` 'use strict' const execSync = require('child_process').execSync const image = process.argv[2] const inspect = JSON.parse( execSync('docker inspect ' + image).toString() ) const ports = Object.keys(inspect[0].ContainerConfig.ExposedPorts) let out = ports.reduce(function (str, p, i) { const port = p.split('/')[0] str += `-p=${port}:${port} ` return str }, '') out += image process.stdout.write(out) process.exit()