如何在docker容器中执行命令作为bash shell脚本的一部分

时间:2016-04-14 15:46:27

标签: bash shell docker

我想编写一个自动执行以下操作的bash脚本:

进入内部运行容器

docker exec -it CONTAINER_NAME /bin/bash

执行一些命令:

cat /dev/null > /usr/local/tomcat/logs/app.log
exit

有问题的部分是执行docker exec时。创建了新shell,但未执行其他命令。

有没有办法解决它?

2 个答案:

答案 0 :(得分:20)

您可以heredoc使用docker exec命令:

docker exec -i CONTAINER_NAME bash <<'EOF'
cat /dev/null > /usr/local/tomcat/logs/app.log
exit
EOF

使用变量:

logname='/usr/local/tomcat/logs/app.log'

然后用作:

docker exec -i CONTAINER_NAME bash <<EOF
cat /dev/null > "$logname"
exit
EOF

答案 1 :(得分:-3)

您只需启动

即可

docker exec -it container_id cat /dev/null > /usr/local/tomcat/logs/app.log