Docker 运行 bash 脚本,然后移除容器

ale*_*nst 4 docker

有没有办法可以在容器内运行 bash 脚本,然后删除容器,所有内容都在一行中?该脚本应该能够写入它当前所在的文件夹。

我试过了

docker run --rm -ti ubuntu:trusty bash -c 'source runme.sh'
Run Code Online (Sandbox Code Playgroud)

但是 bash 找不到该文件,我假设是因为容器无权访问脚本所在的文件夹。

daw*_*wud 12

如果脚本在容器内不可用,则需要将脚本挂载为容器内的卷:

$ cat << EOF > sample_script.sh
echo 'Hello, world'
EOF
Run Code Online (Sandbox Code Playgroud)

运行docker容器如下(这里/path/to/sample_script.sh是宿主机中的路径):

$ docker run -v /path/to/sample_script.sh:/sample_script.sh \
  --rm ubuntu bash sample_script.sh

Hello, world
Run Code Online (Sandbox Code Playgroud)

容器将在执行后被移除。请注意,您不需要以交互方式运行它,将显示标准输出。

搬运工运行基准大约有以这种方式使用的卷的详细信息。