我有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运行。
答案 0 :(得分:0)
最容易理解和最安全的方法是使用客户端-服务器模式。
在第三个容器Dockerfile中暴露一个端口,并将其设置为根据请求执行某些脚本。该容器在本集中充当服务器。
每次要执行脚本时,从php容器curl
到该服务器:
$handle = curl_init();
curl_setopt($handle, CURLOPT_URL, $url);
$data = curl_exec($handle);
curl_close($handle);
卷曲应该指向第三个容器名称。
我想帮助在第3个容器上设置服务器端侦听,只显示其构建的Dockerfile
或docker-compose
文件。