Как мы можем запустить команду на другой связанный контейнер из существующего контейнера - PullRequest
0 голосов
/ 25 марта 2019

У меня есть 2 контейнера и работает.

Я вошел в один контейнер, скажем, контейнер A, я хочу выполнить команду x в контейнере B из контейнера A.

Для уточнения,

В моем приложении есть php, mysql и другие инструменты в другом контейнере. Когда пользователь нажимает на конкретную ссылку в моем приложении php, в третьем контейнере должна выполняться определенная команда.

Мой первый 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

Dockerfile моего второго контейнера:

FROM ubuntu:bionic
RUN apt-get update && apt-get upgrade -y
EXPOSE 5000

Мой docker-compose.yml файл

version: "2"

services:
  www:
    build: .
    container_name: Web
    ports:
      - "80:80"
    restart: always
    command: tail -f /dev/null
    volumes:
      - .:/var/www/html
      - /var/run/docker.sock:/var/run/docker.sock
    networks:
      internal:
      shared:
          ipv4_address: 172.55.0.5

  ubuntu:
    build:
      context:  ./dockerFiles/ubuntu
    container_name: Radius
    ports:
      - "5000:5000"
    volumes:
      - ./dockerFiles/radius/ubuntu:/ubuntu
    restart: always
    networks:
      internal:
      shared:
          ipv4_address: 172.55.0.4

volumes:
  persistent:

networks:
  internal:
    driver_opts:
      internal: "true"
    driver: bridge
  shared:
    driver_opts:
      enable_ipv6: "true"
    driver: bridge
    ipam:
      config:
        - subnet: 172.55.0.0/16
          gateway: 172.55.0.1


Возможно ли это? Если да, можно ли это выразить?

Заранее большое спасибо

Я пробовал команду docker-in-docker, она не кажется стабильной и безопасной.

Ожидается запуск команды в другом контейнере, который связан с этим и должен по возможности запускаться через php.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...