如何在Docker容器中执行命令作为bash shell脚本的一部分
我想写一个bash脚本来自动执行以下操作:
进入正在运行的容器
docker exec -it CONTAINER_NAME /bin/bash
执行一些命令:
cat /dev/null > /usr/local/tomcat/logs/app.log exit
有问题的部分是当docker exec
被执行时。 新的shell被创build,但其他命令不被执行。
有没有办法解决它?
您可以将heredoc
docker exec
命令与heredoc
一起使用:
docker exec -i CONTAINER_NAME bash <<'EOF' cat /dev/null > /usr/local/tomcat/logs/app.log exit EOF
要使用variables:
logname='/usr/local/tomcat/logs/app.log'
然后用作:
docker exec -i CONTAINER_NAME bash <<EOF cat /dev/null > "$logname" exit EOF
你可以简单地启动
docker exec -it container_id cat /dev/null > /usr/local/tomcat/logs/app.log