我是docker的新手,使用https://github.com/mattrayner/docker-lamp
我已经阅读了 template <typename U = T>
std::enable_if_t<sizeof(U) && (false == std::is_same<T, long>::value)>
bar1 (int)
{ }
template <typename U = T>
std::enable_if_t<sizeof(U) && (false == std::is_same<T, long>::value), int>
bar2 ()
{ return 0; }
命令,但仍未完全获得docker run
选项。有没有办法让它告诉Apache在非标准端口上监听?
我已成功在默认端口80上启动它,然后从容器内重新配置/重新加载Apache,以将自身绑定到端口8080.但在这种情况下,我无法访问容器和#39;来自外部的Apache 通过localhost:8080。 (如果这是有道理的。)
我只是想使用PHP 5.6开发一些东西,而不会干扰我的本地设置上运行PHP 7.0的任何其他内容。如果有另一种方法可以达到同样的目的,我也很擅长。
答案 0 :(得分:1)
-p
或--publish
选项是host:container
端口映射,因此您无需更改容器内已运行的内容。
如果容器已在端口80
上运行,但您想通过端口8080
从外部(通过主机或笔记本电脑)访问它,那么您可以使用-p 8080:80
进行简单运行将主机端口8080
映射到容器端口80
。
多个容器可以在同一主机上运行并使用端口80
(因为容器在Docker网络上有自己的IP地址)。但是你一次只能暴露一个端口。
例如,如果您想要运行3个容器并且所有容器都在端口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
部分对此更深入。