赞
踩
有时候我们想执行某个容器的某条命令,但又不想进入容器内。那该怎么办?
所以就有一种办法,我们直接在容器外执行容器内的命令,来进行一些容器内的操作。
#查看容器名
docker ps -a
#例如nginx;-c后面是要执行的容器内的命令
sudo docker exec -it nginx /bin/bash -c 'cd /packages/detectron && python tools/train.py'
-it
。这个不使用
it
,一般用于执行周期性计划任务之类的,容易遇到:the input device is not a TTY报错;
sudo docker exec -i test /bin/bash -c 'cd /application/test && sh /application/test/start.sh’
#查看容器的CONTAINER ID
docker ps -a
DOCKER_ID=63f6f4sab243
#根据CONTAINER ID来执行容器内的命令
sudo docker exec -it $DOCKER_ID /bin/bash -c 'cd /packages/detectron && python tools/train.py'
# 或
sudo docker exec $DOCKER_ID /bin/bash -c 'cd /packages/detectron && python tools/train.py'
-it
有可能造成命令不执行,特别是在程序调用时,确认的确需要的时候再加上-it;
在执行周期性计划任务的时候就不要加-it
了,把-it
改为-i
即可;
如果在周期性计划任务中使用的是-it
,会遇到:the input device is not a TTY报错;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。