我想编写一个自动执行以下操作的bash脚本:
进入内部运行容器
docker exec -it CONTAINER_NAME /bin/bash
执行一些命令:
cat /dev/null > /usr/local/tomcat/logs/app.log
exit
有问题的部分是执行docker exec
时。创建了新shell,但未执行其他命令。
有没有办法解决它?
答案 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