我是码头新手。我按照这里的教程https://www.youtube.com/watch?v=Pe6a8Jbvi9E创建了一个带有docker的WordPress站点。他用下面的命令解释了关于端口转发的问题,
docker run --link=my_mysql:mysql -p 80:80 -d wordpress据我理解,这将将主机端口80中的所有请求重定向到容器的端口80。但是这将如何与mysql的端口3306通信呢?此外,在本教程中,数据库详细信息没有为wordpress设置,而不是从获取db配置值的位置设置?有人能解释一下吗?对不起,如果这是非常基本的问题。
发布于 2015-04-09 11:09:00
但是这将如何与mysql的端口3306通信呢?
wordpress容器将与mysql容器通信,因为链接允许这样做:(参见将容器连接在一起)
链接允许容器彼此发现并安全地将有关一个容器的信息传输到另一个容器。设置链接时,可以在源容器和收件人容器之间创建管道。
因此,端口3306不公开给主机(就像80端口那样),但是它对wordpress容器是可见的。
Docker在容器之间创建一个安全隧道,该容器不需要对外公开容器上的任何端口;您将注意到,当我们启动db容器时,我们没有使用
-P或-p标志。 这是链接的一个巨大好处:我们不需要将源容器(这里是mysql数据库)公开给网络。 Docker 为源容器公开的每个端口定义了一组环境变量。 每个变量在表单中都有一个唯一的前缀:
<name>_PORT_<port>_<protocol>这个前缀中的组件是:
<name>参数中指定的别名--link (例如,mysql)<port>数<protocol>。https://stackoverflow.com/questions/29536433
复制相似问题