将 stdin 传递给容器

在诸如恢复数据库转储或者希望通过管道从主机推送某些信息的情况下,你可以使用 -i 标志作为 docker rundocker exec 的参数。

例如,假设你要将容器中的数据库转储放在容器化的 mariadb 客户端上,则可以在本地 dump.sql 文件中执行以下命令:

docker exec -i mariadb bash -c 'mariadb "-p$MARIADB_PASSWORD" ' < dump.sql

一般来说,

docker exec -i container command < file.stdin

要么

docker exec -i container command <<EOF
inline-document-from-host-shell-HEREDOC-syntax
EOF