当前位置: 首页 > 知识库问答 >
问题:

如何使用docker exec运行2个命令

龙高歌
2023-03-14

我需要用docker exec运行2个命令。我正在从docker容器中复制一个文件,不想处理凭据来使用像ssh这样的东西。此命令复制一个文件:

sudo docker exec boring_hawking tar -cv /var/log/file.log | tar -x

但它会创建一个子目录var/log,我想避免这种情况,所以如果我可以在docker容器中执行这些操作,我应该很好:

cd /var/log ; tar -cv ./file.log

如何让docker exec运行2个命令?

共有3个答案

侯和惬
2023-03-14

对于偶然发现这一点并希望以不同方式指定多个命令以执行更复杂脚本的其他人:

cat <<EOF | docker exec --interactive boring_hawking sh
cd /var/log
tar -cv ./file.log
EOF
孙承弼
2023-03-14

通常,需要几个命令来更改工作目录-

为此,docker现在有一个-w选项来指定工作目录。例如,在本案中

docker exec -w /var/log boring_hawking tar -cv ./file.log
许奇
2023-03-14

这就得到了答案:Docker命令行中的转义字符我最终做了以下操作:

sudo docker exec boring_hawking bash -c 'cd /var/log ; tar -cv ./file.log' | tar -x

它的工作原理是,运行一个bash命令,参数是我想要运行的两个命令。

 类似资料:
  • 我知道怎么说 但如何指定多个? 这似乎只是随机运行一个测试。 这告诉我 在根项目“MyProject”中找不到任务“MyPackage.Model.ModelTest”。 我读了很多手册和教程(和一些SO帖子),但没有找到明确的答案。但是我看到有人通过-tests“somePackage.*”作为参数,所以我想空格周围的引号可能会有帮助。 这不会很快失败,但不幸的是,它只运行列表中的第一个测试。

  • 我是maven的新手,我想同时执行2个java文件。我在StackOverflow中读了几篇文章,因为我对maven的了解有限,所以我不明白如何做到这一点。我在这里附加了我的pom.xml文件,我在mac终端中使用的命令行是: mvn编译执行:Java-dexec . main class = " org . parallel . parse thread 1 " 我有另一个名为ParseThre

  • 我想在Linux上运行SSH命令来启动/停止带有Laravel特使的服务器。但是,对于SSH::into()的语法,我得到了一个错误。我不知道该怎么办完全卡住了。我们需要一种方法来解决这个问题,让它发挥作用。特使设置并与“php artisan”命令配合使用: 命令:特使运行foo--user=root--host=94.130.97.242 这就是我为SSH::into()启动/停止服务器所做的

  • 问题内容: 我刚刚开始使用Docker.io。这无疑是一个很好的平台。我有一个需要帮助的问题。我在ec2 setup docker上运行了一个中等实例。现在,我想在媒体实例的顶部使用docker.io彼此独立地运行2个wordpress博客。 请有人能指导我解决此问题,我将非常感谢 非常感谢确实Hareem Haque 更新: 基本上,我想做的是为docker运行两个节点(节点1和节点2)。我运行

  • 2. Shell如何执行命令 2.1. 执行交互式命令 用户在命令行输入命令后,一般情况下Shell会fork并exec该命令,但是Shell的内建命令例外,执行内建命令相当于调用Shell进程中的一个函数,并不创建新的进程。以前学过的cd、alias、umask、exit等命令即是内建命令,凡是用which命令查不到程序文件所在位置的命令都是内建命令,内建命令没有单独的man手册,要在man手册

  • 在阅读了多篇关于这个主题和Gradle手册的文章后,我正在尝试运行下面的代码块。我运行下面的命令并得到以下错误:execCommand==null! 关于我在下面的代码块中做错了什么有什么想法吗?