我正在使用一个Shell脚本,该脚本试图在正在运行的容器内创建目录。但是由于找不到二进制文件而产生错误。 这是一个示例脚本:
#!/bin/sh
set -x
CONTAINER_ID=`docker ps | grep postgres | awk '{print $1}'`
docker exec -it $CONTAINER_ID bash mkdir /backup
答案 0 :(得分:1)
尝试一下:
#!/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"
应该可以工作。
如果您的docker映像内部有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