与docker为WordPress的端口转发

我是docker工的新手。 我跟着这里的教程https://www.youtube.com/watch?v=Pe6a8Jbvi9E创build一个WordPress站点与docker。 他正在用下面的命令解释端口转发,

docker run --link=my_mysql:mysql -p 80:80 -d wordpress 

据我了解,这将把主机端口80中的所有请求redirect到容器的端口80。 但是,这将如何与mysql的端口3306沟通? 而且在那个教程中,数据库的详细信息不是在wordpress的任何地方设置的,而是从db config的值取自哪里的? 有人可以解释吗? 对不起,如果这是非常基本的问题。

但是,这将如何与mysql的端口3306沟通?

wordpress容器将与mysql容器进行通信,因为这是一个链接所允许的:(请参阅将容器链接在一起 )

链接允许容器相互发现并安全地将有关一个容器的信息传输到另一个容器。 当您设置链接时,您会在源容器和收件人容器之间创buildpipe道。

所以端口3306 不会暴露给主机(就像80端口一样),但对于wordpress容器是可见的。

Docker在容器之间创build一个不需要在容器外部公开任何端口的安全隧道; 你会注意到当我们启动db容器时,我们没有使用-P-p标志。
这是一个很大的好处:我们不需要将源容器(这里是mysql数据库)暴露给networking。

Docker 为源容器公开的每个端口定义一组环境variables
每个variables都有一个唯一的前缀forms:

 <name>_PORT_<port>_<protocol> 

这个前缀中的组件是:

  • --link参数中指定的别名<name> (例如,mysql)
  • 暴露的<port>号码
  • 一个<protocol>是TCP或UDP