Команда docker exec
запускает команду в пространствах имен контейнера. Одним из таких пространств имен является файловая система. Поэтому, если команда не является частью образа, записана непосредственно в контейнер, или вы смонтировали том хоста, чтобы отобразить каталог хоста в контейнер, вы не сможете выполнить его. Том хоста может выглядеть так:
docker run -v /host/scripts:/container/scripts -n your_container $your_image
docker exec -it your_container /container/scripts/test.sh
Этот том хоста может иметь одинаковый путь как на хосте, так и на контейнере.
Если это сценарий оболочки, вы можете использовать перенаправление ввода / вывода, например ::
docker exec -i $container_id /bin/bash <local_script.sh
но помните, что вы не можете делать интерактивные вещи таким образом, так как содержимое скрипта заменило ваш терминал как stdin. Это работает, потому что оболочка внутри контейнера просто обрабатывает команды из стандартного ввода.
Кроме этих сценариев, я не знаю, что вам сказать, кроме документации от AWS, которая выглядит неправильно.