使用绑定到非标准端口的 apache 启动 docker LAMP 映像

start a docker LAMP image with apache bound to non-standard port

我是 docker 的新手,使用 https://github.com/mattrayner/docker-lamp

我已经阅读了有关 docker run 命令的内容,但仍然不太了解 -p 选项。有没有办法让它告诉 Apache 在非标准端口上侦听?

我已成功在默认端口 80 上启动它,然后 re-configuring/re-loading Apache 从容器中将自身绑定到端口 8080。但在那种情况下我无法从中访问容器的 Apache 之外通过localhost:8080。 (如果这有意义的话。)

我只是想使用 PHP 5.6 开发一些东西而不影响我的本地设置,即 运行 PHP 7.0。如果有另一种方法可以达到同样的目的,我也很乐意。

-p--publish 选项是一个 host:container 端口映射,这样您就不必更改容器内可能已经 运行ning 的内容.

如果容器已经 运行 正在端口 80 上运行,但您想通过端口 8080 从外部(通过您的主机或笔记本电脑)访问它,那么您可以简单地 运行 与 -p 8080:80 会将您的主机端口 8080 映射到容器端口 80.

多个容器可以 运行 并在同一主机上使用端口 80(因为容器在 Docker 网络上有自己的 IP 地址)。但是一次只能暴露一个端口。

例如,如果您有 3 个容器想要 运行 并且它们都在端口 80 上侦听,您可以从第一个 -p 8080:80 开始,第二个从 -p 8080:80 开始-p 8082:80,第三个 -p 8084:80.

https://docs.docker.com/engine/reference/commandline/run/#publish-or-expose-port--p---expose-p 部分对此进行了更深入的探讨。