将 stdin 传递给容器
在诸如恢复数据库转储或者希望通过管道从主机推送某些信息的情况下,你可以使用 -i
标志作为 docker run
或 docker 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