有没有办法将端口绑定到容器而不通过run命令传递参数?我不喜欢使用'docker run'命令启动我的容器,所以使用-p参数对我来说不是一个选项。我喜欢使用'docker start containername'命令启动容器。我想用端口号(http://dockerserver:8081)指定docker-server的主机名,然后将其转发到我的容器应用程序,该应用程序正在侦听端口8081.我的设置在Azure上,但非常基本Azure docker插件看起来有点像矫枉过正。我读了一下expose命令,但似乎你仍然需要使用'docker run -p'命令从外部访问容器。任何建议都将非常感谢。
答案 0 :(得分:2)
docker run
只是docker create
+ docker start
的快捷方式。创建容器时需要公开端口,因此docker create中提供了-p
选项:
docker create -d -p 80:80 --name web nginx:alpine
docker start web
端口发布只会执行端口。
如果您希望将主机名传递给容器,则需要使用命令选项或(更可能)环境变量(在Dockerfile中使用ENV
定义并使用{{}传递。 1}} -e
。