当前位置:   article > 正文

docker如何在容器外执行容器内命令_docker不进入容器执行命令

docker不进入容器执行命令

前言

有时候我们想执行某个容器的某条命令,但又不想进入容器内。那该怎么办?

所以就有一种办法,我们直接在容器外执行容器内的命令,来进行一些容器内的操作。


可以根据容器名来执行,也可以根据容器的CONTAINER ID来执行

参考实例

  • 根据容器名来执行容器内的命令
#查看容器名
docker ps -a
#例如nginx;-c后面是要执行的容器内的命令
sudo docker exec -it nginx /bin/bash -c 'cd /packages/detectron && python tools/train.py'
  • 1
  • 2
  • 3
  • 4
  • 根据容器名来执行容器内命令,不使用-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’
  • 1
  • 根据CONTAINER ID来执行容器内的命令
#查看容器的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'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

注意事项:

-it 有可能造成命令不执行,特别是在程序调用时,确认的确需要的时候再加上-it;
在执行周期性计划任务的时候就不要加-it了,把-it改为-i即可;
如果在周期性计划任务中使用的是-it,会遇到:the input device is not a TTY报错;


在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/650124
推荐阅读
相关标签
  

闽ICP备14008679号