Docker – 访问链接的容器

我目前正在学习一些docker工人。 到目前为止,我已经使用php和nginx运行wordpress。

我的Dockerfiles很难编码,如果没有configuration,它们将无法工作。

所以我现在要做的是删除我所有的卷,并使用环境variables来提供我需要的信息来构build我所需的configuration文件,但我正在努力与容器的链接。

我想使用一个* .sh文件作为入口点来设置我需要在我的configuration中的值。 到现在为止,这是一件容易的事情。

我现在的问题是,我需要访问链接的容器文件系统(以取代我使用的卷)。

我有一个app.conf文件(不要怪它,我现在没有关心最佳实践或任何事情):

server { listen 0.0.0.0:80; server_name _; root LINKEDADRESS/ROOT_DIR; index index.php index.html index.htm; access_log /var/log/nginx/default_access.log; error_log /var/log/nginx/default_error.log; # Pass PHP scripts to PHP-FPM location ~* \.php$ { fastcgi_index index.php; fastcgi_pass unix:LINKEDADRESS/RUND_DIR/php7-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME LINKEDADRESS/ROOT_DIR$fastcgi_script_name; } } 

链接的容器是我的php / wordpress容器。 我的nginx服务器需要访问它的文件系统才能在浏览器中看到wordpress。 将ROOT_DIR设置为envvariables并不是什么大问题,但我不知道如何获取链接容器的地址来访问这些文件。

我知道链接容器导致创build一些envvariables

XZW_PORT

XZW_TCP_ADRESS

等等,但他们似乎依赖于链接的容器名称。 那么,我是否需要从任何地方获得这个名字(也许是另一个envvariables),还是有一个我没有想到的更简单的解决scheme?

我刚刚开始使用Docker(我之前做过很多的Docker文件,但完全不同),所以我会很感激我得到的任何解释。 我试图展示自己的方式,直到现在,我希望这不是难以阅读。 谢谢!

编辑:我刚刚遇到bash脚本内的globs,但我觉得他们有点混乱。

 echo "${!X*} 

给我所有以X开始的环境variables,但是如何获得以_PORT结尾的所有variables(希望只有一个)? 我不明白。