我们如何在现有容器中的另一个链接容器上运行命令

时间:2019-03-25 07:33:43

标签: docker docker-compose dockerfile

我有2个容器正在运行。

我已登录到一个名为容器A的容器中,我想从容器A中执行容器B中的命令x。

要详细说明,

我的应用程序在另一个容器中具有php,mysql和其他工具。当用户单击我的php应用程序上的特定链接时,应在第3个容器上运行特定的命令。

我的第一个容器的Dockerfile:

3

我的第二个容器的Dockerfile:

FROM php:7.1.2-apache
RUN docker-php-ext-install mysqli

RUN a2enmod rewrite
RUN /etc/init.d/apache2 restart

ADD . /var/www/html

我的FROM ubuntu:bionic RUN apt-get update && apt-get upgrade -y EXPOSE 5000 文件是

docker-compose.yml

这可能吗?如果是,可以大肆宣扬吗?

在此先感谢

我已经尝试过docker-in-docker命令,这似乎不稳定且安全。

期望在与之链接的另一个容器中运行命令,并且应尽可能通过php运行。

1 个答案:

答案 0 :(得分:0)

最容易理解和最安全的方法是使用客户端-服务器模式。

在第三个容器Dockerfile中暴露一个端口,并将其设置为根据请求执行某些脚本。该容器在本集中充当服务器。

每次要执行脚本时,从php容器curl到该服务器:

$handle = curl_init();
curl_setopt($handle, CURLOPT_URL, $url);
$data = curl_exec($handle);
curl_close($handle);

卷曲应该指向第三个容器名称。

我想帮助在第3个容器上设置服务器端侦听,只显示其构建的Dockerfiledocker-compose文件。