Docker上的端口

有没有办法将端口绑定到容器,而不通过运行命令传递参数? 我不喜欢用'docker run'命令来启动我的容器,所以使用-p参数不是我的select。 我喜欢用'docker start containername'命令启动我的容器。 我想指定docker服务器的主机名与端口号( http:// dockerserver:8081 ),然后这应该被转发到我的容器的应用程序正在侦听端口8081.我的设置是在Azure上,但很漂亮基本的,所以Azure docker插件看起来有点像矫枉过正。 我读了有关的暴露命令,但似乎仍然需要使用“docker run -p”命令从外部访问容器。 任何build议将非常感激。

docker run只是docker create + docker start的快捷方式。 在创build容器时需要暴露端口,所以-p选项在docker create中可用:

 docker create -d -p 80:80 --name web nginx:alpine docker start web 

端口发布只能做端口。

如果你想让主机名传递给容器,你需要用一个命令选项或(更可能)一个环境variables来执行 – 在Dockerfile中用ENV定义,并在docker create中用-e传递。