У меня есть 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.