使用Docker镜像运行shell脚本

input: – 有安装了Docker Toolbox的Windows机器。 – 有一个shell脚本文件baz.sh ,它调用py2dsc-deb

问题: py2dsc-deb在Windows上不可用。

据我所知,我可以从Docker存储库中提取一些Linux发行版映像,创build一个容器,然后执行shell脚本文件,它将运行py2dsc-deb并完成其工作。

我拉:

 debian - stretch-slim - 3ad21 - 3 weeks ago - 55.3MB 

现在

  1. 如何使用debian运行我的脚本,如: docker exec mycontainer /path/to/test.sh

  2. 运行docker --rm debian:stretch-slim什么都不做。 不是假设在docker-machine ip上运行Debian发行版吗?

  3. 我试图用docker exec 1ef5b ./build.sh docker run -it debian:stretch-slim /bin/bash来保存容器,然后使用docker exec 1ef5b ./build.sh运行脚本,但是获取

$ docker exec 745 ./build.sh rpc error:code = 2 desc = oci runtime error:exec failed:container_linux.go:247:启动容器进程导致“exec:\”./ build.sh \“:stat ./ build.sh:没有这样的文件或目录“

这是否意味着我不能运行外部脚本,并且必须始终在Docker中传递它?

你可以通过input在容器中执行bash命令

 docker exec -ti -u `username` `container_name` bash -c "cd /path/to/ && ./test.sh" 

可以说你的容器名是test_buildbox ,你是root ,你的脚本停留在/bin/test.sh你可以通过键入这个脚本

 docker exec -ti -u root test_buildbox bash -c "cd /bin/ && ./test.sh