Docker:如何从一个正在运行的容器向另一个容器发送信号?
我正在使用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
但现在,我想发送信号到运行的容器到另一个。 那么,我怎么能从另一个正在运行的容器中执行这个命令。 还是有另一种发送信号的方式?
提前致谢
这是我使用的代码。 它可以帮助别人:
echo -e "POST /containers/<docker_id>/kill?signal=SIGUSR1 HTTP/1.0\r\n" |nc -U /tmp/docker.sock
以前,在我的docker-compose.yml中 ,我共享了卷:
exemple1 hostname: exemple_1 volumes: - /var/run/docker.sock:/tmp/docker.sock
为了达到这个目的,你需要将Docker套接字从主机安装到你想要发送信号的容器中。 例如,看这个post的解释和细节。