Docker:从多个容器运行命令

我想执行一个使用来自多个容器的命令的命令。

例如,我想执行一个使用psql和pg_dump命令的备份脚本。

docker exec db_backup pg_dump failed to exec: exec: "pg_dump": executable file not found in $PATH 

docker run有一个选项 – --linkexec有类似的选项吗?

要解决这个问题,有3个容器:

  • my_app应用
  • D b
  • 在db_backup

我想从db_backup脚本中使用位于db pg命令。

--link docker exec没有--link选项。 如果你想使用特殊的脚本进行备份:

  1. 从postgresql( db容器使用的那个)开始创build一个新的映像db_backup ,将备份脚本添加到某个文件夹。
  2. docker run --volumes-from db db_backup your_backup_script.sh

1)使用sudo docker run -ti db /bin/bash进入db shell

2)键入which pg_dump或者如果第一次失败, locate pg_dump

3)在命令sudo docker exec db /full_path_to/pg_dump使用完整path

在你的db容器里运行3)

注意:在我的Fedora上, pg_dump指向/usr/bin/pg_dump