よくよく考えたらそうだった。
docker exec コンテナ名|コンテナID cd OCI runtime exec failed: exec failed: container_linux.go:346: starting container process caused "exec: \"cd\": executable file not found in $PATH": unknown
エラーの内容としては、ファイルパスが通っている場所にcdのコマンドを実行するファイルがありません、ということなので、bash -c "cd"
とか、sh -c "cd"
とかしてやる。
docker-ceのcomponents/cli/cli/command/container/exec.goを雑に読んでみると、内部的にコンテナを操作するREST APIのようなものがあるらしい。interactiveオプション抜きの状態で、実際にコンテナに対して何かコマンドを実行するときは、POSTリクエストっぽいことが内部的には行われている。