当前位置: 首页 > 面试题库 >

使用Shell脚本在Docker容器中运行脚本

欧阳洲
2023-03-14
问题内容

我正在尝试创建用于设置Docker容器的Shell脚本。我的脚本文件如下所示:

#!bin/bash

docker run -t -i -p 5902:5902 --name "mycontainer" --privileged myImage:new /bin/bash

运行此脚本文件将在新调用的bash中运行容器。

现在,我需要运行一个脚本文件(test.sh),该文件已经位于上述给定的shell脚本的容器内(例如:cd /path/to/test.sh &&
./test.sh),该怎么做?


问题答案:

您可以使用以下命令在正在运行的容器中运行命令docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

docker exec mycontainer /path/to/test.sh

并从bash会话运行:

docker exec -it mycontainer /bin/bash

从那里您可以运行您的脚本或任何其他内容。



 类似资料:
  • 我一直在使用localstack开发一个针对Local的服务。我刚刚通过运行了他们的docker映像

  • 问题内容: 如何从Docker容器控制主机? 例如,如何执行复制到主机的bash脚本? 问题答案: 那真的取决于您需要该bash脚本执行的操作! 例如,如果bash脚本仅回显某些输出,则可以执行 另一种可能性是您希望bash脚本安装某些软件-例如要安装docker-compose的脚本。你可以做类似的事情 但是,此时,您真的必须深入了解脚本在做什么,以允许容器从容器内部对其主机授予特定权限。

  • 如何从docker容器控制主机? 例如,如何执行复制到主机的bash脚本?

  • 我试图在docker容器中使用docker compose来运行shell脚本。我正在使用Dockerfile构建容器环境并安装所有依赖项。然后我将所有项目文件复制到容器中。据我所知,这很有效。(我对docker还是相当陌生的,docker撰写) 我的Dockerfile: 我目前正在尝试的是: docker编写文件: 这导致容器无法启动,从日志中我得到以下结果: 有关更多参考和信息,请参阅我的e

  • 问题内容: 我的目录仅包含两个文件,并且: 在读 并且仅包含 在成功生成: 但是,如果尝试这样做,则会出现错误: 是什么原因造成的?(我记得以类似的方式在基于图像的脚本中运行脚本,所以也许它是Alpine特有的)? 问题答案: Alpine附带ash作为默认外壳,而不是。 所以你可以 有一个shebang将/ bin / bash定义为sayhello.sh的第一行,因此您的文件sayhello.

  • 我有一个服务,我正在通过Rancher通过Docker-Compose提出。我遇到的问题是需要在容器部署后设置密码。