Попробуйте:
#!/bin/sh
set -x
CONTAINER_ID=`docker ps | grep postgres | awk '{print $1}'`
docker exec -it $CONTAINER_ID sh -c "mkdir /backup"
Должно работать sh -c "mkdir /backup"
.
Если в вашем образе докера есть bash
, попробуйте bash -c "mkdir /backup"
Я попытался с самого конца и получил желаемый результат.
$ sh script.sh
+ docker ps
+ awk '{print $1}'
+ grep inspiring_sinoussi
+ CONTAINER_ID=08a35fa3c040
+ docker exec -it 08a35fa3c040 sh -c 'mkdir /backup'
$ docker exec -it 08a35fa3c040 sh
/ # ls / | grep backup
backup