👨🎓博主简介
🏅优快云博客专家
🏅云计算领域优质创作者
🏅华为云开发者社区专家博主
🏅阿里云开发者社区专家博主
💊交流社区:运维交流社区 欢迎大家的加入!
🐋 希望大家多多支持,我们一起进步!😄
🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏 ⭐️ 加关注+💗
前言
有时候我们想执行某个容器的某条命令,但又不想进入容器内。那该怎么办?
所以就有一种办法,我们直接在容器外执行容器内的命令,来进行一些容器内的操作。
可以根据容器名来执行,也可以根据容器的CONTAINER ID来执行
参考实例
- 根据容器名来执行容器内的命令
#查看容器名
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来执行容器内的命令
#查看容器的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报错;


本文介绍如何在不进入容器的情况下执行容器内的命令,包括通过容器名或容器ID执行,并提供了具体的示例。还讨论了使用-it参数的注意事项。
1561

被折叠的 条评论
为什么被折叠?



