在脚本中运行命令到 docker 容器

Posted

技术标签:

【中文标题】在脚本中运行命令到 docker 容器【英文标题】:Run command to docker container in a script 【发布时间】:2015-03-30 02:36:21 【问题描述】:

我需要在脚本中运行 docker 容器的命令,我正在尝试:

docker run -it <container> /bin/bash -c "command"

我没有错误但命令没有执行

【问题讨论】:

你能说得更具体点吗?例如docker run -it &lt;container&gt; /bin/bash -c "echo 'Hello'" 工作正常。 在我的情况下是 centos 我需要清除 nginx 容器上的缓存,我运行:docker run -it nginx /bin/bash -c "rm -f /tmp/cache/*/*/*"。如果我在容器内启动这个命令它会工作,这样缓存就不会被清除 那是因为你应该commit you change 不,docker commit nginx 成功,但文件还在 我无法创建新图像,我不能停止服务...我手动完成 【参考方案1】:

我无法创建新图像,我不能停止服务......我手动完成

可以invoke a command in a running container:

docker exec <container_id> rm -f /tmp/cache/*/*/*

【讨论】:

我已经尝试过了,我没有收到任何错误但文件没有被删除 @user2385354 你确定rm -f /tmp/cache/*/*/* 是你真正需要的吗?您要删除/tmp/cache 及其所有子文件夹吗?如果是这样,那么rm -rf /tmp/cache 就是您所需要的 您可以删除所有文件,如下find /tmp/cache/ -type f -delete。如果需要,您也可以添加-maxdepth &lt;n&gt; 实际上,***.com/a/6896903/2286990 正是这样建议的。见nginx.2469901.n2.nabble.com/…

以上是关于在脚本中运行命令到 docker 容器的主要内容,如果未能解决你的问题,请参考以下文章

如何避免Docker容器启动脚本运行后自动退出

如何在容器中运行docker命令

docker-compose命令在什么范围内运行

如何为在 docker 容器内运行的 corda 节点运行迁移脚本?

Docker 从入门到实践系列三 - Docker 常用命令

Docker 从入门到实践系列三 - Docker 常用命令