How to execute commands in docker container as par

2019-03-27 08:45发布

I would like to write a bash script that automates the following:

Get inside running container

docker exec -it CONTAINER_NAME /bin/bash

Execute some commands:

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

The problematic part is when docker exec is executed. The new shell is created, but the other commands are not executed.

Is there a way to solve it?

2条回答
Emotional °昔
2楼-- · 2019-03-27 09:12

You can use heredoc with docker exec command:

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

To use variables:

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

then use as:

docker exec -i CONTAINER_NAME bash <<EOF
cat /dev/null > "$logname"
exit
EOF
查看更多
混吃等死
3楼-- · 2019-03-27 09:23

You can simply launch

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

查看更多
登录 后发表回答