我正在使用docker,我想知道:是否有可能从正在运行的容器发送信号到另一个正在运行的容器?
更准确地说,我想将SIGUSR1发送给python程序.
我已经制作了一个bash脚本来获取我的python进程的pid并发送信号:
send_signal.sh
#!/bin/bash
py_pid=$(pidof -s python my_programme.py
kill -SIGUSR1 $py_pid
之前,我从Docker主机执行send_signal.sh,如下所示:
docker exec docker_with_python bash send_signal.sh
或者只是这样:
docker kill --signal="SIGUSR1 docker_with_python
但现在,我想向正在运行的容器发送信号到另一个容器.那么,我怎么能从另一个正在运行的容器中执行这个命令.或者有另一种发送信号的方式吗?
提前致谢
我正在使用 docker-compose 和 docker-compose.yml 文件。
有没有办法进入 .yml,另一个 docker 的 ID(在同一个 docker-compose.yml 中)?
docker-compose.yml:
containerA:
command: python -u catch_sig.py
volumes:
- /workspace:/app
containerB:
command: echo -e "POST /containers/containerA/kill?signal=SIGUSR1 HTTP/1.0\r\n" | nc -U /tmp/docker.sock
Run Code Online (Sandbox Code Playgroud)