zl程序教程

您现在的位置是:首页 >  工具

当前栏目

docker如何在容器外执行容器内命令

2023-09-14 09:13:29 时间

前言

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

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


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

参考实例

  • 根据容器名来执行容器内的命令
#查看容器名
docker ps -a
#例如nginx;-c后面是要执行的容器内的命令
sudo docker exec -it nginx /bin/bash -c 'cd /packages/detectron && python tools/train.py'
  • 根据容器名来执行容器内命令,不使用-it
sudo docker exec -i test bash -c 'cd /application/test && sh /application/test/start.sh’ >/dev/null
  • 根据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


在这里插入图片描述